【发布时间】:2019-01-24 10:00:09
【问题描述】:
此问题基于this 的答案。
我正在尝试将我的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();
}
});
由于某种原因,字符串为空/null,并且崩溃指向onItemClickListner.onClick("TESTING");。
有人可以看看我可能做错了什么吗?
编辑:
我在我的OnMenuItemClickListener 中调用onItemClickListner.onClick("TESTING");,如下所示:
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
onItemClickListner.onClick("TESTING");
return true;
}
我没有提供我的整个片段,因为我只是在onCreateView 中添加了上面的内容。
【问题讨论】:
-
你在什么布局视图上设置了
onClickListener?只需显示方法,您在哪里调用onItemClickListner.onClick("TESTING"); -
是的,请把整个片段代码贴在这里。此外,每当发生崩溃时,获取崩溃日志也会有所帮助。请始终提供尽可能多的背景信息,以便我们为您提供帮助。
-
@grabarz121 请看我的编辑
-
@JoaquimLey 请查看我的编辑,我没有添加整个片段,因为我所做的只是在初始化适配器后在
onCreateView中添加上述内容。 -
你的
popup初始化了吗?请记住,每个 switch 语句都应该有一个默认情况,在您的代码中应该返回 false
标签: java android android-recyclerview onitemclicklistener