从片段调用按钮clickListener活动?

时间:2015-12-09 11:48:48

标签: android android-fragments onclicklistener

我的活动中有一个包含片段的按钮。从我需要调用按钮的一个片段,按钮clickListener并将带有extras的intent传递给另一个activity。我怎样才能做到这一点?我搜索了很多,但无法找到合适的解决方案。

3 个答案:

答案 0 :(得分:1)

您可以通过界面

与您的活动联系
  • 首先,在你的片段中:

    public interface ButtonCallback {
    
        //You can add parameters if you need it
    
        void launchAction();
    }
    
    //And when you want comunicate with Activity, launch call
    ((ButtonCallback ) getActivity()).launchAction();
    
  • 然后,您的Activity必须实现YourFragment.ButtonCallback ,并覆盖您从片段中听到调用的方法:

    Activity implements YourFragment.ButtonCallback{
    
       @Override
       public void launchAction() {
           //Todo
           //Your intent with extras...
       }
    
    }
    

此致

答案 1 :(得分:1)

您也可以在片段类中编写onclicklistener。 从您的活动中获取按钮对象,并在您的片段类onActivityCreated方法中设置onclick,如下所示......

Button button = (Button)getActivity().findViewById(R.id.button1);

button .setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            /// Your code here
        }
    });

答案 2 :(得分:1)

为活动中的按钮实现onClickListener:

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // get the fragment from the fragment manager
    Fragment frag = getFragmentManager().findFragmentByTag("FRAGMENT TAG");
    Bundle extras = frag.getExtrasForNewActivity();

    /// Your code here this is for Activity
    Intent intent=new Intent(getActivity(),Second.class);
    intent.putExtras(extras);
    startActivity(intent);
 }
});

并在片段中创建一个类似的方法:

public Bundle getExtrasForNewActivity()
{
    /// return a bundle with values
}