Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Buat tampilan daftar favorit dengan preferensi bersama

Ada dua masalah di sini (berdasarkan proyek Anda)

Pertama (menyimpan status bookmark Imageview )

Di adaptor buat metode yang memeriksa apakah produk tertentu ada di 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;
}

Di dalam adaptor, periksa apakah ada produk dalam preferensi bersama, lalu setel dibookmark dapat digambar dan menetapkan tag

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

Kemudian di dalam metode panggilan balik 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;
        }

Kedua (dapatkan produk favorit dan berikan ke Fragmen "FAVORIT" )

Di dalam metode getFavorite tambahkan parameter StringKemudian di Fragmen "FAVORIT" Anda dengan processFinish(AsyncResponse Anda) panggil getFavorite Anda untuk mendapatkan daftar produk Favorit Anda lalu atur adaptor Anda:

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. dapatkah saya mengonfigurasi pekerjaan cron untuk localhost?

  2. Apakah ada cara yang lebih baik untuk mendapatkan data dari dua tabel sekaligus dengan Sphinx/MySQL?

  3. Mencegah caching kueri di MySQL

  4. Muat data dari CSV di dalam bidang bit di mysql

  5. Kursor di MySQL - Baik atau Buruk