Вид Recycler исчезает при переходе на другую страницу и возвращении назад - PullRequest
0 голосов
/ 04 мая 2020

HomeActivity. java

Я новичок в android, но пытаюсь самостоятельно разработать приложение.

Я скопировал весь файл класса для вашей справки. Если у кого-то есть какая-то идея, пожалуйста, предложите, поскольку я застрял с этим в течение последних нескольких недель.

У меня есть сомнения по поводу событий OnCreate и Onstart, которые запускаются правильно, но представление рециркулятора исчезает, когда я перехожу к какой-то другой экран и вернуться к текущему экрану. Я что-то здесь упускаю

publi c Класс HomeActivity расширяет AppCompatActivity {

private AppBarConfiguration mAppBarConfiguration;
private DrawerLayout mDrayerLayout;
private ActionBarDrawerToggle mToggle;
private DatabaseReference ProductRef,ProductRef1;
private RecyclerView recyclerView,recyclerView1;
RecyclerView.LayoutManager layoutManager,layoutManager1;
Parcelable mListState;

private ImageView cart,orders,category,orderhist,settings,FAQ,terms,about,contact;
private TextView carttxt,orderstxt,categorytxt,orderhisttxt,settingstxt,FAQtxt,termstxt,abouttxt,contacttxt;
private final String KEY_RECYCLER_STATE = "recycler_state";
private RecyclerView mRecyclerView;
private static Bundle mBundleRecyclerViewState;

private String type="";

ViewFlipper v_flipper1,v_flipper2;






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

    int images1[] = {R.drawable.farming1,R.drawable.farming2,R.drawable.farming3,R.drawable.farming4};
    int images[] = {R.drawable.slider1,R.drawable.slider2,R.drawable.slider3,R.drawable.slider4,R.drawable.slider5};




    v_flipper1 = findViewById(R.id.vflipper1);
    v_flipper2 = findViewById(R.id.vflipper2);
    cart = findViewById(R.id.cart_click);
    orders = findViewById(R.id.orders_click);
    category = findViewById(R.id.category_click);
    orderhist = findViewById(R.id.orderhistoryclick);
    settings = findViewById(R.id.settingsclick);
    FAQ = findViewById(R.id.FAQclick);
    terms = findViewById(R.id.termsclick);
    about = findViewById(R.id.aboutclick);
    contact = findViewById(R.id.contactclick);


    carttxt = findViewById(R.id.cart_text);
    orderstxt = findViewById(R.id.orders_text);
    categorytxt = findViewById(R.id.categories_text);
    orderhisttxt = findViewById(R.id.orderhistorytext);
    settingstxt = findViewById(R.id.settingstext);
    FAQtxt = findViewById(R.id.FAQtext);
    termstxt = findViewById(R.id.termstext);
    abouttxt = findViewById(R.id.abouttext);
    contacttxt = findViewById(R.id.contacttext);

    for(int image: images)
    {
        flipperimages(image);
    }

    for(int image1: images1)
    {
        flipperimages1(image1);
    }


    //viewPager = (ViewPager) findViewById(R.id.viewpager);
    //ViewPageAdapter viewPageAdapter = new ViewPageAdapter();
    //viewPager.setAdapter(viewPageAdapter);


    Intent inte = getIntent();
    Bundle bundle = inte.getExtras();

    if(bundle!=null)
    {
        type = getIntent().getExtras().get("Admin").toString();
    }



    ProductRef = FirebaseDatabase.getInstance().getReference().child("Products");
    ProductRef1 = FirebaseDatabase.getInstance().getReference().child("Trending Products");


    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("ZeOrganic");
    setSupportActionBar(toolbar);
    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!type.equals("Admin")) {
                Intent intent = new Intent(HomeActivity.this, CartActivity.class);
                startActivity(intent);
            }

        }
    });
    final DrawerLayout drawer = findViewById(R.id.drawer_layout);
    NavigationView navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId())
            {
                case  R.id.nav_cart:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Cart ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Intent intentcart = new Intent(HomeActivity.this,CartActivity.class);
                        startActivity(intentcart);

                    }

                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_search:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Search ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Intent intentsearch = new Intent(HomeActivity.this, SearchProductsActivity.class);
                        startActivity(intentsearch);
                    }

                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_category:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Category ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Intent intentsearchcat = new Intent(HomeActivity.this, SearchCategoriesActivity.class);
                        startActivity(intentsearchcat);
                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_orderhistory:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Order History ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Intent intentsearchcat = new Intent(HomeActivity.this, OrderHistoryActivity.class);
                        startActivity(intentsearchcat);

                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_settings:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Settings ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Intent intent_set = new Intent(HomeActivity.this,SettingsActivity.class);
                        startActivity(intent_set);

                    }

                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_FAQ:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "FAQ ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {

                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_termsandcond:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Terms and Conditions ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {

                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_aboutus:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "About Us ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {

                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_contactus:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Contact Us ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {

                    }
                    drawer.closeDrawers();
                    return true;
                case  R.id.nav_logout:
                    menuItem.setChecked(true);
                    Toast.makeText(HomeActivity.this, "Logged out ...", Toast.LENGTH_LONG).show();
                    if(!type.equals("Admin")) {
                        Paper.book().destroy();
                        Intent intent_logout = new Intent(HomeActivity.this,MainActivity.class);
                        intent_logout.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(intent_logout);
                        finish();

                    }


                    drawer.closeDrawers();
                    return true;
            }
            return false;
        }
    });


    View headerview = navigationView.getHeaderView(0);
    TextView userNameTextView = headerview.findViewById(R.id.user_profile_name);
    CircleImageView profileImageView = headerview.findViewById(R.id.profile_image);

    if(!type.equals("Admin")) {
        userNameTextView.setText("Welcome " + Prevalent.currentOnlineUser.getName() + " ...");
        Picasso.get().load(Prevalent.currentOnlineUser.getImage()).placeholder(R.drawable.profile);
    }




    mDrayerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mToggle = new ActionBarDrawerToggle(this,mDrayerLayout,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
    mDrayerLayout.addDrawerListener(mToggle);
    mToggle.syncState();
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    cart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentcart = new Intent(HomeActivity.this,CartActivity.class);
                startActivity(intentcart);

            }

        }
    });


    carttxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentcart = new Intent(HomeActivity.this,CartActivity.class);
                startActivity(intentcart);

            }

        }
    });

    orders.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearch = new Intent(HomeActivity.this, SearchProductsActivity.class);
                startActivity(intentsearch);
            }

        }
    });


    orderstxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearch = new Intent(HomeActivity.this, SearchProductsActivity.class);
                startActivity(intentsearch);
            }

        }
    });

    category.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearchcat = new Intent(HomeActivity.this, SearchCategoriesActivity.class);
                startActivity(intentsearchcat);
            }

        }
    });


    categorytxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearchcat = new Intent(HomeActivity.this, SearchCategoriesActivity.class);
                startActivity(intentsearchcat);
            }

        }
    });

    orderhist.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearchcat = new Intent(HomeActivity.this, OrderHistoryActivity.class);
                startActivity(intentsearchcat);

            }

        }
    });


    orderhisttxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intentsearchcat = new Intent(HomeActivity.this, OrderHistoryActivity.class);
                startActivity(intentsearchcat);

            }

        }
    });

    settings.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intent_set = new Intent(HomeActivity.this,SettingsActivity.class);
                startActivity(intent_set);

            }

        }
    });


    settingstxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {
                Intent intent_set = new Intent(HomeActivity.this,SettingsActivity.class);
                startActivity(intent_set);

            }

        }
    });

    FAQ.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {

            }

        }
    });


    FAQtxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!type.equals("Admin")) {

            }

        }
    });

    terms.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });


    termstxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });

    about.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });


    abouttxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });

    contact.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });


    contacttxt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });



    recyclerView = findViewById(R.id.recycler_menu);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false);
    //layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);

    recyclerView1 = findViewById(R.id.recycler_menu1);
    recyclerView1.setHasFixedSize(true);
    layoutManager1 = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false);
    //layoutManager = new LinearLayoutManager(this);
    recyclerView1.setLayoutManager(layoutManager1);

    if(savedInstanceState==null)
    {

    }

    // Passing each menu ID as a set of Ids because each
    // menu should be considered as top level destinations.
   /* mAppBarConfiguration = new AppBarConfiguration.Builder(
            R.id.nav_cart, R.id.nav_orders, R.id.nav_category,R.id.nav_settings,R.id.nav_logout)
            .setDrawerLayout(drawer)
            .build();
    NavController navController = Navigation.findNavController(this, R.id.nav_view);
    NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
    NavigationUI.setupWithNavController(navigationView, navController);*/


}


@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if(mToggle.onOptionsItemSelected(item))
    {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

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


    //MoveToFolder(ProductRef,ProductRef1);
    ListOurProducts();
    ListTrendingProducts();
    //setContentView(R.layout.content_home);//set to whatever layout name you have

    //mRecyclerView = (RecyclerView) findViewById(R.id.recycler_menu);//set to whatever view id you use
    // don't forget to set your adapter

}

private void ListTrendingProducts() {
    FirebaseRecyclerOptions<TrendingProducts> options1 = new FirebaseRecyclerOptions.Builder<TrendingProducts>()
            .setQuery(ProductRef1,TrendingProducts.class)
            .build();

    FirebaseRecyclerAdapter<TrendingProducts, TrendingProductsViewHolder> adapter1 =
            new FirebaseRecyclerAdapter<TrendingProducts, TrendingProductsViewHolder>(options1) {
                @Override
                protected void onBindViewHolder(@NonNull TrendingProductsViewHolder holder, int position, @NonNull TrendingProducts model) {
                    holder.txtProductName.setText(model.getPname());
                    Picasso.get().load(model.getImage()).into(holder.imageView1);
                }

                @NonNull
                @Override
                public TrendingProductsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view1 = LayoutInflater.from(parent.getContext()).inflate(R.layout.trending_product_items_layout,parent,false);
                    TrendingProductsViewHolder holder1 = new TrendingProductsViewHolder(view1);
                    return holder1;
                }
            };

    recyclerView1.setAdapter(adapter1);
    adapter1.startListening();
}

public void ListOurProducts()
{
    FirebaseRecyclerOptions<Products> options = new FirebaseRecyclerOptions.Builder<Products>()
            .setQuery(ProductRef, Products.class)
            .build();

    FirebaseRecyclerAdapter<Products, ProductViewHolder> adapter =
            new FirebaseRecyclerAdapter<Products, ProductViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull ProductViewHolder productViewHolder, int i, @NonNull final Products products) {
                    productViewHolder.txtProductName.setText(products.getPname());
                    productViewHolder.txtProductDescription.setText(products.getDescription());
                    productViewHolder.txtProductPrice.setText("Price = Rs." + products.getPrice()+ "/-");
                    Picasso.get().load(products.getImage()).into(productViewHolder.imageView);



                    productViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            if(type.equals("Admin"))
                            {
                                Intent intent = new Intent(HomeActivity.this, AdminMaintainProductsActivity.class);
                                intent.putExtra("pid",products.getPid());
                                startActivity(intent);
                            }
                            else
                            {
                                Intent intent = new Intent(HomeActivity.this,ProductDetailsActivity.class);
                                intent.putExtra("pid",products.getPid());
                                startActivity(intent);

                            }

                        }
                    });
                }

                @NonNull
                @Override
                public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_items_layout,parent,false);
                    ProductViewHolder holder = new ProductViewHolder(view);
                    return holder;
                }
            };

    recyclerView.setAdapter(adapter);
    adapter.startListening();
}

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

@Override
public boolean onSupportNavigateUp() {
    NavController navController = Navigation.findNavController(this, R.id.nav_view);
    return NavigationUI.navigateUp(navController, mAppBarConfiguration)
            || super.onSupportNavigateUp();
}

public void flipperimages(int image)
{
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundResource(image);

    v_flipper1.addView(imageView);
    v_flipper1.setFlipInterval(4000);
    v_flipper1.setAutoStart(true);

    v_flipper1.setInAnimation(this,android.R.anim.slide_in_left);
    v_flipper1.setOutAnimation(this,android.R.anim.slide_out_right);

}

public void flipperimages1(int image)
{
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundResource(image);

    v_flipper2.addView(imageView);
    v_flipper2.setFlipInterval(6000);
    v_flipper2.setAutoStart(true);

    v_flipper2.setInAnimation(this,android.R.anim.slide_in_left);
    v_flipper2.setOutAnimation(this,android.R.anim.slide_out_right);

}

}

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