При использовании PersistableBundle в onCreate, он показывает мне пустую страницу - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел бы знать, почему PersistableBundle показывает мне пустую страницу.

Когда onCreate (@Nullable Bundle saveInstanceState, @Nullable PersistableBundle persistentState),

это показывает мне пустую страницу, ноonCreate (@Nullable Bundle saveInstanceState) показывает мне страницу с BottomavigationBar.

Я знаю, PersistableBundle может сохранять данные куда-нибудь, но как это связано с этим явлением?

Вот коды.

package com.example.android.instagramclone.Home;

import android.content.Context;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.example.android.instagramclone.R;
import com.example.android.instagramclone.Utils.BottomNavigationViewHelper;

public class HomeActivity extends AppCompatActivity {

    //What activity it's going through
    private static final String TAG = "HomeActivity";
    private static final int ACTIVITY_NUM = 0;



    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);

        Context mContext = HomeActivity.this;
        setContentView(R.layout.activity_home);
        Log.d(TAG, "onCreate: starting.");

        setupBottomNavigationView(mContext);
    }

    /**
     * BottomNavigationViewSetup
     */
    private void setupBottomNavigationView(Context mContext){
        Log.d(TAG, "setBottomNavigationView: setting up bottomNavigationView");
        BottomNavigationView bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottomNavViewBar);
        BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationView);
        Menu menu = bottomNavigationView.getMenu();
        MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
        menuItem.setChecked(true);
    }
}

Но это не

package com.example.android.instagramclone.Likes;

import android.content.Context;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.example.android.instagramclone.R;
import com.example.android.instagramclone.Utils.BottomNavigationViewHelper;

public class LikesActivity extends AppCompatActivity {

    private static final String TAG = "LikesActivity";
private Context mContext = LikesActivity.this;
    private static final int ACTIVITY_NUM = 3;


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_home);
        Log.d(TAG, "onCreate: started.");

        setupBottomNavigationView();
    }

    //set up bottomNavigationView
    private void setupBottomNavigationView(){
        Log.d(TAG, "setBottomNavigationView: setting up bottomNavigationView");
        BottomNavigationView bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottomNavViewBar);
 //       BottomNavigationViewHelper.setUpBottomNavigationView(bottomNavigationView);
        BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationView);
        Menu menu = bottomNavigationView.getMenu();
        MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
        menuItem.setChecked(true);
    }
}

Заранее спасибо.

1 Ответ

0 голосов
/ 21 декабря 2018

Благодаря Майку М, теперь я понимаю, почему.

Перегрузка onCreate (), которая принимает PersistableBundle, не будет вызываться во время обычного запуска Activity.Используется для восстановления состояния после перезагрузки устройства.Когда вы используете эту перегрузку вместо обычной, этот метод вообще не вызывается, поэтому ваш setContentView (R.layout.activity_home);вызов и последующая настройка никогда не происходят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...