我的适配器:
public class MyAdapter extends BaseAdapter {
...
public View getView(int position, View convertView, ViewGroup parent) {
View view = mLayoutInflater.inflate(R.layout.my_listview_item, null);
TextView myTv = (TextView) view.findViewById(R.id.myTv);
myTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// I want to replace another fragment
}
});
return view;
}
我在stackoverflow中找不到解决方案...
我可以替换一个片段吗??帮帮我..
4条答案
按热度按时间axr492tv1#
从适配器类调用fragment有两种方法:
1)你可以为它做一个接口。
2)您可以使用特定操作注册自己的
BroadcastReceiver
。直接从按钮点击调用片段不是一个好的和正确的,干净的方式。所以我只是要张贴我的第二种方法的答案。
在适配器类中单击On按钮
这在android中是很简单的事情,就是通过发送广播消息。
现在,在您的活动中,您只需要向
"call.myfragment.action"
注册一个BroadcastReceiver
,这就是它的内部内容,只需调用您的片段:6xfqseft2#
你有两个办法:
1-将您的片段或Activity传递给您的适配器并引用它。在
onClick()
方法中,使用它来替换片段。2-用一个
BroadcastReceiver
来替换这个片段,然后在onClick()
方法中,简单地发送一个BroadCast。63lcw9qa3#
你可以使用片段管理器来弹出或替换你的片段.片段与活动绑定,
2g32fytz4#
在类适配器中添加此属性并在构造函数中初始化:
在初始化适配器时,添加getActivity():
在类适配器中单击侦听器方法:
工作完美!