【问题标题】:Android Fragment Backstack not showingAndroid Fragment Backstack 未显示
【发布时间】:2014-01-19 21:14:43
【问题描述】:

我正在开发一个应用程序,其中每个选项卡中都有选项卡和片段。我让它在启动时显示我的列表视图的地方工作,当我单击列表中的一个名称时,它会转到下一个片段,但是当我点击后退按钮时它不会返回到列表视图我只是得到一个空白屏幕.我确定这是一个简单的答案,我已经发布了一些代码 sn-ps,如果需要更多,请告诉我。感谢您的帮助。

片段活动

public class HomeStackActivity extends FragmentActivity {

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

    // add initial fragment, do not add to back stack, no transition animation
    addFragment(new MyCommentActivity(), false, FragmentTransaction.TRANSIT_NONE);
}

void addFragment(Fragment fragment, boolean addToBackStack, int transition) {
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment1, fragment);
    ft.setTransition(transition);
    if (addToBackStack)
        ft.addToBackStack(null);
    ft.commit();
}


public void onBackPressed() {
    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() > 0)
        getSupportFragmentManager().popBackStack();
    else
        finish();
}

}

名称点击

public class nameOnClickListener implements OnClickListener{
        private int position;
        public nameOnClickListener(int position){
            this.position=position;
        }
        @Override
        public void onClick(View v) {

            HashMap<String, String> update = new HashMap<String, String>();
            update = commentList.get(position); 
            Log.d("Testing Click", update.get(MyCommentActivity.KEY_UID));

            SharedPreferences sp = PreferenceManager
                    .getDefaultSharedPreferences(getActivity());
            SharedPreferences.Editor edit = sp.edit();
            edit.putString("profile_id", update.get(MyCommentActivity.KEY_UID));
            edit.putString("profile_type", update.get(MyCommentActivity.KEY_TYPE));
            edit.commit();

            addFragment(new UserProfileActivity(), true, FragmentTransaction.TRANS

【问题讨论】:

    标签: android listview android-fragments tabs baseadapter


    【解决方案1】:

    改变:

    ft.replace(R.id.fragment1, fragment);
    

    到:

    ft.add(R.id.fragment1, fragment);
    

    【讨论】:

    • 不要覆盖 onBackPressed 并尝试,因为只需添加到 backstack 这应该可以工作
    • 不这样做仍然会得到一个空白屏幕,底部有标签。好的,我有一个用于启动 HomeStackActivity 的选项卡的活动,从那里有使用 baseadapter 的 MyCommentsActivity,当您单击名称时,我需要将用户 ID 发送到用户配置文件
    • 我可以和你分享整个项目
    猜你喜欢
    • 2014-03-07
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多