Android 更改选项卡';这是片段中的文本

Android 更改选项卡';这是片段中的文本,android,actionbarsherlock,Android,Actionbarsherlock,我正在尝试做一些非常简单的事情。我有两个标签,一个显示狗的品种信息,另一个显示人们写的描述狗的品种的评论列表。我想在选项卡中也包括编写的评论数量,因此看起来是这样的: 品种信息|评论(19) 问题是,我需要先下载上述评论数据,以便查看选项卡上的评论数量 因此,我想到的解决方案是首先在我的BreedProfile.java(ShelockActivity)中添加选项卡 然后在我的BreedProfileReviewFragment.java中,我将下载评论,然后通过这样做更新评论选项卡文本: ge

我正在尝试做一些非常简单的事情。我有两个标签,一个显示狗的品种信息,另一个显示人们写的描述狗的品种的评论列表。我想在选项卡中也包括编写的评论数量,因此看起来是这样的:

品种信息|评论(19)

问题是,我需要先下载上述评论数据,以便查看选项卡上的评论数量

因此,我想到的解决方案是首先在我的BreedProfile.java(ShelockActivity)中添加选项卡

然后在我的BreedProfileReviewFragment.java中,我将下载评论,然后通过这样做更新评论选项卡文本:

getActivity().getActionBar().getTabAt(1).setText("Reviews 10");
但是,根据LogCat,上述方法不存在

03-05 18:15:26.460: E/AndroidRuntime(1286): FATAL EXCEPTION: main
03-05 18:15:26.460: E/AndroidRuntime(1286): java.lang.NoSuchMethodError: android.support.v4.app.FragmentActivity.getActionBar
所以我的问题是,在添加标签后,是否可以从片段访问标签来更改标签的文本属性?如果是,我如何才能做到这一点

注:

  • 我无法将评论与品种信息一起下载,因为API是分开的

  • BreedProfile.java源于ListActivity BreedList.java中的品种列表


  • 您可以实现一个
    接口
    。因此,您可以在片段的父活动处运行代码

    在片段中创建接口,如下所示:

    public interface OnQuestionSelectedListener {
     void onQuestionSelected(int Position, boolean isFirstTime);
    }
    
    在您的父活动端实施它,如下所示:

    public class YourParentActivity extends Activity implements YourFragment.OnQuestionSelectedListener{
           @Override
        public void onQuestionSelected(int position, boolean isFirstTime) {
            // your code.
             }
    }
    
    ((YourParentActivityName)getActivity()).onQuestionSelected(position, true);
    
    从片段中调用它,如下所示:

    public class YourParentActivity extends Activity implements YourFragment.OnQuestionSelectedListener{
           @Override
        public void onQuestionSelected(int position, boolean isFirstTime) {
            // your code.
             }
    }
    
    ((YourParentActivityName)getActivity()).onQuestionSelected(position, true);
    
    (您可以根据需要更改代码)
    将片段的所有逻辑传输到其父级是一种非常好的做法,因为我认为片段用于UI部件和
    接口
    为我们提供了一种将片段消息传输到父级的好方法。在父级执行所有活动,并将结果传输到相应的片段


    希望这能有所帮助。

    我已经想好了。基本上,为了访问这些选项卡,我应该使用:getSherlockActivity().getSupportActionBar().getTabAt(1.setText)(“Review(10)”);而不是我以前使用的,因为我使用的是actionbarsherlock。我希望其他人会觉得这很有用。很好的一天!