2017-09-25 256 views
0

你好,我有OnClickListener可以将OnClickListener写入parceable?

View.OnClickListener listener= new View.OnClickListener() 
{ 
@Override 
public void onClick(View view) 
    { 
    Toast.makeText(Conversations.this, "click on MSG", 
      Toast.LENGTH_SHORT).show(); 
    } 
}; 

麻烦================================== ======================================

我需要把这个监听器放入Fragment中将可以接受。 我不能parcelableing侦听器,但在readvalue为空之后,当点击应用程序失败时,因为它是空对象的引用。

现在我需要找到一些方法,可用于保存和读取对象(View.OnClickListener)如果parceable或类似的东西。 如果没有这个,我需要重建我的项目:(

请帮助我。

感谢

_______________________________________________________--

我还没有片段,片段我希望所有的片段放入“额外“并在其他活动中读取额外..

Intent i= new Intent(Conversations.this,MessagesSingleFragmentActivity.cla‌​ss); 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

不,你不能传递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 
      } 
     } 
) 

更新时间:

如果要执行什么的onClick 法ivityAActivityB,然后EventBus是用于该用途OttoEventBus通过GreenBot

+0

我还没有片段中的片段我想把所有片段放入“额外”,并在其他活动中读取额外的内容.. Intent i = new Intent(Conversations.this,MessagesSingleFragmentActivity.class); i.putExtra(“Fragment1”,(Parcelable)recycleMessage); startActivity(i); 和其他活动有 意图extras = getIntent(); Fragment fragment =(Fragment)extras.getParcelableExtra(“Fragment1”); fm.beginTransaction()。替换(R.id.fragment_container,fragment).commit(); – trip08

+0

片段没有额外的内容,在片段中传递参数 –

+0

当调用活动时,我将片段传递给额外的片段。但是当我在片段OnClickListener中时,我不知道它是如何parceable的。 – trip08

0

建议经由活动片段之间相互作用最佳选择..或更一般地,通过该活动符合接口。

还有一件事:如果你在这两个片段中都有共同的功能,也许最好把它解压到Activity?

相关问题