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