startService не определен для OnClickListener во фрагменте

#android #service #listener #fragment

#Android #Обслуживание #прослушиватель #фрагмент

Вопрос:

Я получаю эту ошибку во фрагменте

Метод startService(намерение) не определен для типа new View.OnClickListener

в onCreateView у меня есть этот код

 mButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        startService(new Intent(MyService.ACTION1));
    }
});
  

Кто-нибудь знает, почему?

Спасибо

Ответ №1:

У OnClickListners нет метода startService. Попробуйте изменить его на FragmentName.getContext().this.startService() .

Комментарии:

1. Во фрагменте, поэтому мне пришлось использовать v.getContext().startService(), но отлично. Спасибо

Ответ №2:

Если имя класса вашего фрагмента было MyFragment, ваш код будет выглядеть так

 mButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Context ctx = (Context)MyFragment.this.getActivity();
        ctx.startService(new Intent(MyService.ACTION1));
    }
});
  

Ответ №3:

Вы можете просто использовать

 getActivity().startService(new Intent(MyService.ACTION1));