sql >> Database teknologi >  >> RDS >> Mysql

Opret favoritlistevisning med delte præferencer

Der er to problemer her (baseret på dit projekt)

Først (gemmer tilstand for bogmærke Imageview )

I adapteren skal du oprette en metode, der kontrollerer, om et bestemt produkt findes i SharedPreferences

public boolean checkFavoriteItem(Product checkProduct) { boolean check =false; List-favoritter =sharedPreference.getFavorites(null, mContext); if (favoritter !=null) { for (Produktprodukt:favoritter) { if (product.equals(checkProduct)) { check =true; pause; } } } returcheck;}

Indvendig adapter kontroller, om et produkt findes i delte præferencer, og sæt derefter bogmærket trækbar og sæt et tag

if (checkFavoriteItem(product)) { holder.favoriteImg.setImageResource(R.mipmap.bookmarked); holder.favoriteImg.setTag("bogmærket"); } andet { holder.favoriteImg.setImageResource(R.mipmap.bookmark_border); holder.favoriteImg.setTag("bogmærkegrænse"); } 

Derefter inde i favOnClick tilbagekaldsmetoden

 @Override public boolean favOnClick(int position ,View v) { Product product =(Product) productList.get(position); ImageView-knap =(ImageView) v.findViewById(R.id.favImage); String tag =button.getTag().toString(); if (tag.equalsIgnoreCase("bogmærke_grænse")) { sharedPreference.addFavorite(aktivitet,produkt); Toast.makeText(activity,"Tilføjet til favoritter",Toast.LENGTH_SHORT).show(); button.setTag("bogmærket"); button.setImageResource(R.mipmap.bookmarked); } andet { sharedPreference.removeFavorite(aktivitet,produkt); button.setTag("bogmærkegrænse"); button.setImageResource(R.mipmap.bookmark_border); Toast.makeText(activity,"Removed from Favorites",Toast.LENGTH_SHORT).show(); } returner sand; } 

Anden (få dit yndlingsprodukt, og send det til "FAVORITE"-fragmentet )

Inde i getFavorite-metoden, tilføj en String-parameter. I dit "FAVORITE"-fragment med processFinish(dit AsyncResponse) kald din getFavorite for at få din favoritproduktliste, og indstil derefter din adapter:

Kontekst mContext;`mContext =getContext();`@Overridepublic void processFinish(String s) { productList =sharedPreference.getFavorites(s, mContext); BindDictionary dict =ny BindDictionary(); dict.addStringField(R.id.tvName, new StringExtractor() { @Override public String getStringValue(Product product, int position) { return product.name; } }); dict.addStringField(R.id.tvDescription, new StringExtractor() { @Override public String getStringValue(Produktprodukt, int position) { return product.description; } }); dict.addStringField(R.id.tvQty, new StringExtractor() { @Override public String getStringValue(Product product, int position) { return "" + product.qty; } }); adapter =new FunDapter<>(getActivity(), productList, R.layout.d_layout_list_d, dict); lvProduct.setAdapter(adapter);} 


  1. Laravel beregne summen af ​​to kolonner med en betingelse

  2. Hvad er Option=N i MySQL ODBC-forbindelsesstrengen?

  3. MySQL:Fejl under sletning af database (fejl 13; fejl 17; fejl 39)

  4. 19.3 PDB Luk ORA-65107 ORA-16078