Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序恢复后片段不显示标题?_Android_Android Fragments_Actionbarsherlock_Android Actionbar - Fatal编程技术网

Android 应用程序恢复后片段不显示标题?

Android 应用程序恢复后片段不显示标题?,android,android-fragments,actionbarsherlock,android-actionbar,Android,Android Fragments,Actionbarsherlock,Android Actionbar,我有一个奇怪的问题,我从来没有见过任何地方,所以我求助于张贴在这里,希望我把它说清楚 我有一个简单的SherlockFragmentActivity,如下图所示,其中包含三个片段,它们都在OnCreateOptions菜单()中调用getActivity().setTitle(),允许我的应用程序根据可见的片段更改标题 这可以根据需要工作,但由于某种原因(可能无关),当我通过主页按钮退出应用程序时,偶尔会在重新打开应用程序时看不到标题。似乎我应该关闭我的应用程序并重新打开它,这很好,但在离开它一

我有一个奇怪的问题,我从来没有见过任何地方,所以我求助于张贴在这里,希望我把它说清楚

我有一个简单的
SherlockFragmentActivity
,如下图所示,其中包含三个片段,它们都在
OnCreateOptions菜单()中调用
getActivity().setTitle()
,允许我的应用程序根据可见的片段更改标题

这可以根据需要工作,但由于某种原因(可能无关),当我通过
主页
按钮退出应用程序时,偶尔会在重新打开应用程序时看不到标题。似乎我应该关闭我的应用程序并重新打开它,这很好,但在离开它一段时间后,当我重新打开它时,标题将不在那里

我完全不知道是什么原因导致了这一切,所以非常感谢您的帮助。我的应用程序的布局(与此问题相关)是一个基本的启动屏幕(作为一个活动),带有一个加载栏,然后打开以下
片段活动

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import static java.lang.Math.*;

public class FragmentControl extends SherlockFragmentActivity {

    private static final int NUM_PAGES = 3;

    private ViewPager mPager;

    private PagerAdapter mPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_control);

        ActionBar action = getSupportActionBar();
        action.setDisplayShowTitleEnabled(true);
        action.setDisplayShowHomeEnabled(false);

        mPager = (ViewPager)findViewById(R.id.pager);
        mPagerAdapter = new FragmentControlAdapter(getSupportFragmentManager(), NUM_PAGES);
        mPager.setAdapter(mPagerAdapter);
        // If this activity wasn't called after a reload
        if((Integer)getIntent().getExtras().get("current") == null){
            // Always start on the middle page, or as close as possible
            mPager.setCurrentItem((int) ceil(NUM_PAGES/2));
        // Otherwise start on the page we left for a smoother experience
        } else {
            mPager.setCurrentItem((Integer)getIntent().getExtras().get("current"));
        }
    }
}
只有当应用程序重新打开到
FragmentActivity
时,我才会看到这个问题,当重新打开其他任何内容并导航到此活动时,它是正常的(正如您所期望的)

非常感谢您的帮助,希望我已经说清楚了

哦,如果这有关系的话,我目前的目标是API 17,对API 8的支持最少。我看到的这个问题的测试手机是HTC One S-还不确定是否在其他设备上,但我将开始寻找

偶尔(…)在离开一段时间后

这听起来像是同时终止了您的应用程序进程


确保使用
onSaveInstanceState
保存实例状态(如显示的标题),并在
活动中还原它。onCreate
Fragment.onViewCreated

但它是否打开回FragmentActivity而不是启动屏幕意味着它没有被杀死?还是我弄错了?@Zackehhh9Lifes不,没有。这就是我最喜欢这个平台的原因。应用程序状态与进程状态无关。您可以在多个进程中使用一个应用程序,也可以在一个进程中使用多个应用程序。当你的应用程序不能执行代码时(没有进程来承载它),它并不是死的。啊,我不知道。如果我滑动到一个新的片段,并且菜单发生了变化(如我在原始问题中提到的,更改了标题),那么无论进程是否被终止,这不应该再次设置标题吗?因为在我的任何片段之间滑动都不会对标题产生任何影响(很抱歉提出额外的问题,我对此完全不知所措)。@zackehh9lifes取决于调用
setTitle
的位置。大多数
视图
在进程终止后正确恢复其状态。我必须检查,但我猜
ViewPager
会还原显示的页码,并为您显示相同的
片段。也许可以使用
ViewPager.OnPageChangeListener