您好OnClickListener
有问题View.OnClickListener listener= new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Toast.makeText(Conversations.this, "click on MSG",
Toast.LENGTH_SHORT).show();
}
};
=============================================== =========================
我需要将这个监听器放入Fragment中,这将是可以实现的。 我没有分配监听器,但是在readvalue为null之后,当点击app crasher时,因为它是对null对象的引用。
现在我需要找到一些可用于保存和读取对象的方法(View.OnClickListener),如果是parceable或类似的东西。 没有这个,我需要重建我的项目:(
请帮帮我。
由于
_______________________________________________________--
我在片段中没有片段我希望所有片段都放入“额外”并在其他活动中读取额外的...
Intent i= new Intent(Conversations.this,MessagesSingleFragmentActivity.class); i.putExtra("Fragment1", (Parcelable) recycleMessage); startActivity(i);
和其他活动
Intent extras = getIntent(); Fragment fragment = (Fragment) extras.getParcelableExtra("Fragment1"); fm.beginTransaction().replace(R.id.fragment_container, fragment).commit();
答案 0 :(得分:0)
不,你不能将OnClickListener作为Parcelable 传递,但是,如果你想观察从一个片段到另一个片段的点击,那么你必须在第二个片段中实现onclick。
FragA.java: //有onClickListener
的人Runnable run;
public void setClick(Runnable run){
this.run = run;
}
view.setOnClickListener(new OnClickListener(){
public void onClick(View v){
// do something in onclick
if(run!=null){run.run();}
}
});
<强> FragB.java:强>
((FragA)getParentFragment()).setClick(
new Runnable() {
@Override
public void run() {
// do something in other fragment
}
}
)
<强>更新强>
如果您想在 ActivityB 上点击 ActivityA ,那么EventBus是GreenBot使用Otto或EventBus的最佳选择
答案 1 :(得分:0)
建议通过Activity ..或更一般地通过Activity符合的接口在片段之间进行交互。
还有一件事:如果你在两个片段中都有共同的功能,也许最好将它提取到Activity?