Как загрузить фрагмент с recyclerview при запуске приложения? - PullRequest
0 голосов
/ 23 сентября 2019

Я построил нижнюю панель вкладок навигации в Android, у нее есть 5 фрагментов, но проблема в том, что при запуске приложения не загружается список повторного просмотра из базы данных Firestore.и этот фрагмент является домашним фрагментом.но если я случайным образом открою другую вкладку и затем перейду на домашнюю вкладку, список домашних вкладок загружается сам, но он не загружается автоматически при запуске приложения.

- это код ниже.пожалуйста, помогите

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {
    private static final String TAG = "DocSnippets";

    private FirebaseAuth mauth;
    private FirebaseFirestore db = FirebaseFirestore.getInstance();
    private CollectionReference UsersRef = db.collection("Users");
    private DocumentReference noteRef = db.document("Notebook/My First Note");
    private MySharedPreferences sp;
    private DocumentReference currentUserRef;

    private Button notificationList;


    private String mUserId, tokenId, currentUserProfilePic, currentUserName, currentUserSpinnerC;




    String currentUserID;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sp = MySharedPreferences.getInstance(this);
        setContentView(R.layout.activity_main);

        mauth = FirebaseAuth.getInstance();
// currentUserID = mauth.getCurrentUser().getUid();
        UsersRef =FirebaseFirestore.getInstance().collection("Users");
        mUserId = mauth.getUid();
        tokenId = FirebaseInstanceId.getInstance().getToken();


        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
        navigationView.setNavigationItemSelectedListener(this);
        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.bottom_nav_view);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);



    }





    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Fragment fragment;
            fragment = null;
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    fragment = new HomeFragment();

                    break;
                case R.id.navigation_dashboard:
                    fragment = new DashboardFragment();
                    break;
                case R.id.navigation_notifications:
                 //   Intent intent = new Intent(MainActivity.this, AddPostActivity.class);
                   // startActivity(intent);
                    fragment = new NotificationsFragment();
                    break;
                case R.id.navigation_post:
                    fragment = new ProfileFragment();
                    break;
                case R.id.navigation_postlist:
                    fragment = new ProfileFragment();
                    break;

            }
            return loadFragment(fragment);
        }
    };


    private boolean loadFragment(Fragment fragment) {
        //switching fragment
        if (fragment != null) {
            getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.fragment_container, fragment)
                    .commit();
            return true;
        }
        return false;
    }


    @Override
    protected void onStart()
    {
        super.onStart();

        FirebaseUser currentUser = mauth.getCurrentUser();

        if(currentUser == null)
        {
            SendUserToSignInActivity();
        }
        else
        {
            retrieveCurrentUserInfo();
            checkUserExistence();
        }

    }

    private void checkUserExistence() {

        final String current_user_id = mauth.getCurrentUser().getUid();
    }


    private void SendUserToSignInActivity() {

        Intent signInIntent = new Intent(MainActivity.this, SignInActivity.class);
        signInIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(signInIntent);
        finish();

    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    private void retrieveCurrentUserInfo(){
        currentUserRef = db.collection("users").document(mUserId);
        currentUserRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document.exists()){
                        currentUserName = (String) document.getString("username");
                        currentUserProfilePic =(String) document.getString("profile_pic");
                        currentUserSpinnerC = (String) document.getString("spinnerC");


                        CircleImageView UserImage = (CircleImageView) findViewById(R.id.current_user_Image);
                        Picasso.get()
                                .load(currentUserProfilePic)
                                .resize(50, 50)
                                .centerCrop()
                                .into(UserImage);

                        TextView username = (TextView) findViewById(R.id.current_user_name);
                        TextView spinnerC = (TextView) findViewById(R.id.current_user_spinnerC);
                        username.setText(currentUserName);
                        spinnerC.setText(currentUserSpinnerC);

                    }
                }


            }
        });

    }


}

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Вы можете запустить выбор фрагмента дома вручную.Вставьте это в конце функции onCreate MainActivity.

View view = navigation.findViewById(R.id.navigation_home);
view.performClick();
0 голосов
/ 23 сентября 2019

Вы не загружаете / не вызываете какой-либо фрагмент в вашем методе onCreate ().

Попробуйте этот способ

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

     /**
      * Your code
      */

     loadFragment(LOAD_YOUR_FRAGMENT);
 }
0 голосов
/ 23 сентября 2019

Фрагмент не загружается при запуске вашей деятельности, поэтому добавьте следующий код в свой метод onCreate ()

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