Android 如何从ViewPager中的不同片段生成工具栏中的单击按钮?

Android 如何从ViewPager中的不同片段生成工具栏中的单击按钮?,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我有活动,在ViewPager中有5个片段,在工具栏中我有一个按钮,我想对所选选项卡片段在按钮上执行不同的单击操作。我有: usertextView_done= (TextView) getActivity().findViewById(R.id.actionbar_tv_icon_done); 但是它为所有片段或所有选项卡创建了单个实例。我假设按钮和工具栏存在于父活动中。 下面是一个简单的方法: 其思想是在活动中创建一个静态整数,并在片段中使用其各自的编号对其进行更新,这样您就可以跟踪当前可

我有活动,在ViewPager中有5个片段,在工具栏中我有一个按钮,我想对所选选项卡片段在按钮上执行不同的单击操作。我有:

usertextView_done= (TextView) getActivity().findViewById(R.id.actionbar_tv_icon_done);

但是它为所有片段或所有选项卡创建了单个实例。

我假设按钮和工具栏存在于父活动中。 下面是一个简单的方法:

其思想是在活动中创建一个静态整数,并在片段中使用其各自的编号对其进行更新,这样您就可以跟踪当前可见的片段。 例如:

//in activity class
public static int CURRENT_FRAGMENT = 1; //set this to your first fragment that is being viewed
现在,您必须从恢复的每个片段中更新整数

//in each fragment add this code
@Override
public void onResume(){
  ParentActivity.CURRENT_FRAGMENT = 2; //in case you're in fragment 2
}
最后,在活动中添加以下内容:

//in actvity class
button .setOnClickListener(new OnClickListener() {
  if(CURRENT_FRAGMENT ==1 ){
    //do things for fragment 1
  } else if (CURRENT_FRAGMMENT ==2 ){
    //do things for fragment 2
  }
etc...
}

如果单击每个片段时都会显示此土司,则可以执行以下操作

--在你的活动中

public void calledFromFragment(String tag)
{
if(tag.equalsIgnorecase("fragment-1-tag")
{
// TODO : for fragment 1
}
else if(tag.equalsIgnorecase("fragment-2-tag"){
// TODO : for fragment 2
}
.
.
 and so on
}
----在你的片段中

    textView_done.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { 
((Activity)context).calledFromFragment("fragment-1-tag");
});

对每个片段执行此操作并让我知道。

此工具栏+按钮是否存在于活动中?是的,在活动中,我可以从片段中访问,但它会为所有片段创建一个实例从片段中粘贴代码,您可以在其中访问此按钮(单击代码)textView_done=(textView)((活动)上下文)。findViewById(R.id.actionbar_tv_icon_done);textView_done.setOnClickListener(new View.OnClickListener(){@Override public void onClick(视图v){Toast.makeText(上下文,“拆分量”,Toast.LENGTH_SHORT.show();});点击每个片段时是否都会显示此祝酒词?嘿,山姆,我添加了我页面的屏幕排序,工具栏中有“完成”按钮,viewPagger有五个片段,我想点击不同片段中的“用餐”按钮。