Mysql
 sql >> база данни >  >> RDS >> Mysql

Създайте любим изглед на списък със споделени предпочитания

Тук има два проблема (въз основа на вашия проект)

Първо (запазване на състоянието на отметка Imageview )

В адаптера създайте метод, който проверява дали даден продукт съществува в SharedPreferences

    public boolean checkFavoriteItem(Product checkProduct) {
    boolean check = false;
    List<Product> favorites = sharedPreference.getFavorites(null, mContext);
    if (favorites != null) {
        for (Product product : favorites) {
            if (product.equals(checkProduct)) {
                check = true;
                break;
            }
        }
    }
    return check;
}

Вътрешният адаптер проверете дали даден продукт съществува в споделените предпочитания, след което задайте marked drawable и задайте маркер

if (checkFavoriteItem(product)) {
        holder.favoriteImg.setImageResource(R.mipmap.bookmarked);
        holder.favoriteImg.setTag("bookmarked");
    } else {
        holder.favoriteImg.setImageResource(R.mipmap.bookmark_border);
        holder.favoriteImg.setTag("bookmark_border");
    }

След това вътре в метода за обратно извикване favOnClick

    @Override
    public boolean favOnClick(int position ,View v) {
        Product product = (Product) productList.get(position);
        ImageView button = (ImageView) v.findViewById(R.id.favImage);
        String tag = button.getTag().toString();
        if (tag.equalsIgnoreCase("bookmark_border")) {
            sharedPreference.addFavorite(activity,product);
            Toast.makeText(activity,"Added to Favorites",Toast.LENGTH_SHORT).show();
            button.setTag("bookmarked");
            button.setImageResource(R.mipmap.bookmarked);
        } else {
            sharedPreference.removeFavorite(activity,product);
            button.setTag("bookmark_border");
            button.setImageResource(R.mipmap.bookmark_border);
            Toast.makeText(activity,"Removed from Favorites",Toast.LENGTH_SHORT).show();
        }
        return true;
        }

Втори (вземете любим продукт и го предайте на фрагмент „ЛЮБИМ“ )

Вътре в метода getFavorite добавете String параметър След това във вашия "FAVORITE" фрагмент с processFinish (вашия AsyncResponse) извикайте вашия getFavorite, за да получите списъка с любими продукти, след което задайте своя адаптер:

Context mContext;
`mContext = getContext();`

@Override
public void  processFinish(String s) {
    productList = sharedPreference.getFavorites(s, mContext);

    BindDictionary<Product> dict = new BindDictionary<Product>();
    dict.addStringField(R.id.tvName, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return product.name;
        }
    });


    dict.addStringField(R.id.tvDescription, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return product.description;

        }
    });


    dict.addStringField(R.id.tvQty, new StringExtractor<Product>() {
        @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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Codeigniter:Бих искал да създам потребителски URL адреси за моите потребители, когато създават потребителско име

  2. Шифроване с PHP Mcrypt и декриптиране с MySQL aes_decrypt?

  3. Достъпът е отказан за създаване на първоначална база данни - как да дам правилния достъп?

  4. Как да чета от полето за дата и час на mysql

  5. Конвертирайте Mysql latin1_swedish_ci в utf8_bin