sql >> データベース >  >> RDS >> Mysql

共有設定でお気に入りのリストビューを作成する

    ここには2つの問題があります(プロジェクトに基づく)

    最初 ブックマーク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;
    }
    

    アダプタ内で、製品が共有設定に存在するかどうかを確認してから、ブックマークを設定します ドローアブルでタグを設定

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

    2番目 お気に入りの商品を入手して「FAVORITE」フラグメントに渡す

    getFavoriteメソッド内に文字列パラメーターを追加し、processFinish(AsyncResponse)を使用して「FAVORITE」フラグメントに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. 休止状態のタイムスタンプをMySQLBIGINTにマップするにはどうすればよいですか?

    2. Google Cloud SQLのCURRENT_TIMESTAMPタイムゾーンを変更しますか?

    3. mySql列の長さ/値を取得するにはどうすればよいですか?

    4. 各行が特定の範囲の日付を表すテーブルを返すSQLクエリ