1

Я пытаюсь использовать кнопку для переключения между фрагментом, над которым я работаю, для нового действия. Я использую прослушиватель On Click, чтобы попробовать переключиться. Также, используя начальную активность. Я думаю, мне, возможно, придется использовать диспетчер фрагментов, но я не уверен, как это использовать.Android Studio | Как использовать On Click для переключения между фрагментом и активностью

Это код, который у меня есть.

addPlayers.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(TeamManagementFragment.this,AddPlayer.class)); 
    } 
}); 

Сообщение об ошибке у меня есть «Не удается разрешить конструктор»

Ваша помощь будет принята с благодарностью :). Большое спасибо, Эдвард.

ответ

0

Предполагая AddPlayer ваша другая деятельность, вы хотите, чтобы начать использовать контекст из View v аргумента в качестве первого аргумента new Intent создания вместо использования текущего экземпляра TeamManagementFragment, так как они не являются действительный контекст.

addPlayers.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(v.getContext(), AddPlayer.class)); 
    } 
}); 

Смотрите страницу документы для контекста, чтобы увидеть, какие классы наследуют от него: https://developer.android.com/reference/android/content/Context.html

+0

Пити Большое спасибо! Это сработало для меня! Просто из интереса, я полагаю, v.getContext() означает, что он получает представление о том, что он включен? –

+0

Да! аргумент 'v' на самом деле будет тем, что было нажато, это потому, что вы можете применить тот же OnClickListener ко многим представлениям. В приведенном выше примере 'v' будет равно' addPlayers'. – petey

+0

Я сделал! Я пытаюсь переключиться между новым элементом Add Activity и Team Management. startActivity (Intent (v.getContext(), TeamManagementFragment.class)); Моя ошибка говорит, что метод не может решить. –

1

Я полагаю, что AddPlayer является видом деятельности. Таким образом, вы можете использовать getActivity() вместо TeamManagementFragment.this

0

хорошо я предполагаю, что вы не получите концепции деятельности и фрагментов. фрагмент - это в основном представление, которое размещено в действии, и оно живое до тех пор, пока активность контейнера не сохраняется. вы не можете использовать намерение переключаться между этими двумя.

0

Попробуйте это, как вы в настоящее время в фрагменте:

addPlayers.setOnClickListener(new View.OnClickListener() { 
@Override public void onClick(View v) { 
    getActivity().startActivity(new Intent(getActivity(),AddPlayer.class)); 
    } 
});