如何访问活动中的片段按钮

我正在创建两个java文件第一个主要活动.java文件第二个fragment.java文件在fragment.java上创建按钮如何点击写在activity.java上的监听器帮我

fragment.java

public class fragment extends fragment{ Button btn; // some code btn = (Button)layout.findviewbyid(R.id.btn1); } } 

activity.java

 public class activity extends Activity { // how to access the click action btn here btn.setOnclicklistner(new View.OnClickLisitner(){ public OnClick(){ } 

您可以定义自定义clickListener类并在fragment创建它的instance在那里设置侦听器实例。 现在您可以在该类中编写代码。 希望它会对你有所帮助。

 public class MyCustomListener implements OnClickListener{ @override public void onClick(View v){ // you stuff } } 

然后在你的片段中调用它

 MyCustomListener listener=new MyCustomListener(); btn.setOnClickListener(listener); 

如果我正确理解您的问题,您希望将片段内的按钮单击委托给其父活动。

保留对片段内的父活动的引用。 然后将侦听器设置为片段中的按钮,如下所示:

 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { parentActivity.doStuff(); } }; 

在您的父Activity中,定义方法doStuff()

 public void doStuff() { // handle button click event here } 

要在片段中使用活动按钮,您必须使用getActivity()

在你的片段中,

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_item_select, container, false); btn = (Button) getActivity().findViewById(R.id.btn); } 

btn是活动中的按钮

Fragment中的getActivity()返回Fragment当前与之关联的Activity。 (请参阅http://developer.android.com/reference/android/app/Fragment.html#getActivity() )。