Как исправить: ошибка: не включающий класс: Контекст - PullRequest
0 голосов
/ 29 июня 2019

У меня есть ошибка, отмеченная в заголовке: error: not an enclosing class: Context

Я уже пытался решить эту проблему на некоторых других форумах, но они не смогли помочь, я проверил YouTube и другие вопросы по stackoverflow, но не смог найти ответ на эту проблему.

Мой код выглядит так:

public class TermineFragment extends Fragment {

    private Button button;
    Context c;

    @Override
    public void onAttach(Context c) {
        super.onAttach(c);
        Context context = c;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_3, container, false);
        button = view.findViewById(R.id.button1);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(Context.this, AnmeldungButton.class));
                startActivity(intent);
            }
        });

        return view;
    }
}

Это приводит к ошибке:

error: not an enclosing class: Context

Что происходит от строки: Intent intent = new Intent(getActivity(Context.this,AnmeldungButton.class));

Я хочу, чтобы моя кнопка во Фрагменте AnmeldungButton.java была в Упражнении, но я надеюсь, что вы меня понимаете ...

Ответы [ 3 ]

0 голосов
/ 30 июня 2019

Используйте этот код

  button.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           Intent intent = new Intent(getActivity(),AnmeldungButton.class);
           startActivity(intent);
       }you a
   });

Вот проблема, которую вы используете, неправильно передают параметр.

Intent(Context packageContext, Class<?> cls)
0 голосов
/ 30 июня 2019
public class TermineFragment extends Fragment {

Context c;
@Override
    public void onAttach(Context c) {
        super.onAttach(c);
        this.c = c; //this is one of the best way to get context of the activity to which the particular activity is associated with
    }
   @Nullable
    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable 
    ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_3, container, false);
        button = view.findViewById(R.id.button1);
  button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
           Intent intent = new Intent(c,AnmeldungButton.class);//Pass the context like this.
           startActivity(intent);
        });
        return view;
    }
}
0 голосов
/ 30 июня 2019

Вы можете использовать getContext () для начала активности во фрагменте

Intent intent = new Intent(getContext(), AnmeldungButton.class);                   
startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...