Этот вопрос основан на этом ответе.
Я пытаюсь передать строку из моего RecyclerView.Adapter
во фрагмент.
В моем адаптереЯ добавил следующее:
onItemClickListner onItemClickListner;
public void setOnItemClickListner(VideoAdapter.onItemClickListner onItemClickListner) {
this.onItemClickListner = onItemClickListner;
}
public interface onItemClickListner{
void onClick(String str);//pass your object types.
}
Я передаю следующую строку, когда количество элементов в моем адаптере меньше единицы (адаптер пуст):
onItemClickListner.onClick("TESTING");
Затем в моемфрагмент я добавляю следующее:
//I do the following after setting my adapter
videoAdapter.setOnItemClickListner(new VideoAdapter.onItemClickListner() {
@Override
public void onClick(String str) {
Toast.makeText(getActivity(), str, Toast.LENGTH_SHORT).show();
}
});
По какой-то причине строка пуста / пуста, и сбой указывает на onItemClickListner.onClick("TESTING");
.
Может кто-нибудь, пожалуйста, посмотрите и посмотрите, что я могуделать неправильно?
Редактировать:
Я звоню onItemClickListner.onClick("TESTING");
внутри моего OnMenuItemClickListener
, как показано ниже:
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
onItemClickListner.onClick("TESTING");
return true;
}
Я не предоставил весь свойфрагмент, потому что я просто добавляю вышеизложенное внутри onCreateView
.