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);
}
}