2016-07-14 5 views
1

ようウィッシュリストに項目の追加と削除します。私はその値に基づいてアプリケーションを起動していたときに、その中で私は、真/偽= is_wishlistつのタグを持っているので、私は、アイコンを変更することにより、そのウィッシュリストにを示しています、APIからの1つの応答を取得していますが、それを変更していた場合、今問題がありますリミッティングから追加までのウィッシュリストのステータスは、Apiで正常に応答していますが、アイコンを変更できません。これは私のコードです。いずれもelseで同じを削除するか、またはこのは、私はウィッシュリストに削除/アイテムを追加したいフリップカート

Resources resources = getResources(); 
holder.wish_list.setImageDrawable(resources.getDrawable(R.drawable.wishlist)); 

this is my image when i am launching application

package com.example.user.smgapp; 

import android.app.Activity; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.database.Cursor; 
import android.graphics.Paint; 
import android.graphics.Typeface; 
import android.support.v7.app.AlertDialog; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.squareup.picasso.Picasso; 

import java.util.HashMap; 
import java.util.List; 

public class Prd_grid_adapter extends BaseAdapter { 


    List<HashMap<String, String>> Category_listData; 
    HashMap<String, String> map; 
    Context context; 
    Typeface face; 
    String wishList_url, remove_wishList_url; 
    Cursor cursor; 
    NavigationDrawer nav = new NavigationDrawer(); 

    private static LayoutInflater inflater = null; 

    public Prd_grid_adapter(Activity context, List<HashMap<String, String>> aList) { 
     // TODO Auto-generated constructor stub 
     Category_listData = aList; 
     /*/for(int i=1;i<aList.size();i++) 
     { 
      Category_listData.add(aList.get(i)); 
     }*/ 
     this.context = context; 
     inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 


    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return Category_listData.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    public class Holder { 
     TextView name, price, original_price; 
     ImageView img, wish_list; 
    } 

    @Override 
    public View getView(final int position, final View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     final Holder holder = new Holder(); 
     final View rowView; 
     this.face = Typeface.createFromAsset(context.getAssets(), "fonts/OpenSans-Regular.ttf"); 
     rowView = inflater.inflate(R.layout.grid_item_view, null); 
     holder.name = (TextView) rowView.findViewById(R.id.p_name); 
     holder.img = (ImageView) rowView.findViewById(R.id.p_img); 
     holder.wish_list = (ImageView) rowView.findViewById(R.id.wish_list); 
     holder.price = (TextView) rowView.findViewById(R.id.p_price); 
     holder.original_price = (TextView) rowView.findViewById(R.id.orginal_p); 
     map = Category_listData.get(position); 
     holder.name.setTypeface(face); 
     holder.name.setText(map.get("product_name")); 
     Log.e("wish list staus..", "wishlist status.." + map.get("is_wishlist")); 
     if (map.get("is_wishlist").equals("0")) { 
      holder.wish_list.setImageResource(R.drawable.empty_wishlist); 
     } else { 
      holder.wish_list.setImageResource(R.drawable.wishlist); 
     } 


     holder.wish_list.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (SingletonActivity.custidstr.isEmpty()) { 
        Toast.makeText(context, "Ur not logged in,Please Login", Toast.LENGTH_SHORT).show(); 

        AlertDialog.Builder builder = new AlertDialog.Builder(context); 
        builder.setTitle("Alert!"); 
        builder.setMessage("Ur not logged in") 
          .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            Intent intent = new Intent(context, Login.class); 
            context.startActivity(intent); 
           } 


          }); 
        // Create the AlertDialog object and return it 
        builder.show(); 

       } else { 
        wishList_url = SingletonActivity.API_URL + "api/add_wishlist.php?customer_id=" + SingletonActivity.custidstr + "&product_id=" + Category_listData.get(position).get("product_id"); 
        remove_wishList_url = SingletonActivity.API_URL + "api/remove_item_wishlist.php?customerid=" + SingletonActivity.custidstr + "&productid=" + Category_listData.get(position).get("product_id"); 
        Log.e("wishlist api..", "wish list api.." + wishList_url); 
        Log.e("remove wishlist api..", "remove wish list api.." + remove_wishList_url); 
        v.setActivated(!v.isActivated()); 
        String wish_status = map.get("is_wishlist"); 
        Log.e("wish status..", "wish status.." + wish_status); 
        int stat = Integer.parseInt(wish_status); 
        // notifyDataSetChanged(); 

        /*if (wish_status=="Product already exists in wishlist"){ 
         Toast.makeText(context,"removed....",Toast.LENGTH_SHORT).show(); 
         nav.removeFromwishList(remove_wishList_url); 
         holder.wish_list.setImageResource(R.drawable.empty_wishlist); 

        } 
        else 
        { 
         nav.addTowishList(wishList_url); 
         Toast.makeText(context,"addedd..",Toast.LENGTH_SHORT).show(); 
         holder.wish_list.setImageResource(R.drawable.wishlist); 
        }*/ 
        if (stat == 0) { 
         nav.addTowishList(wishList_url); 
         Toast.makeText(context, "addedd..", Toast.LENGTH_SHORT).show(); 
         holder.wish_list.setImageResource(R.drawable.wishlist); 
       //  notifyDataSetChanged(); 
        /* ((Activity)context).finish(); 
         Intent i= ((Activity) context).getIntent(); 
         context.startActivity(i);*/ 

         // 

        } else { 
         nav.removeFromwishList(remove_wishList_url); 
         holder.wish_list.setImageResource(R.drawable.empty_wishlist); 
         Toast.makeText(context, "removed....", Toast.LENGTH_SHORT).show(); 
         /* ((Activity)context).finish(); 
         Intent i= ((Activity) context).getIntent(); 
         context.startActivity(i);*/ 
        //  notifyDataSetChanged(); 
        } 
        /* v.setActivated(!v.isActivated()); 
        if (v.isActivated()){ 
         Toast.makeText(context,"addedd..",Toast.LENGTH_SHORT).show(); 
         holder.wish_list.setImageResource(R.drawable.wishlist); 
         nav.addTowishList(wishList_url); 
        } 
        else { 
         Toast.makeText(context,"removed....",Toast.LENGTH_SHORT).show(); 
         nav.removeFromwishList(remove_wishList_url); 
         holder.wish_list.setImageResource(R.drawable.empty_wishlist); 
        }*/ 


       } 


      } 
     }); 


     if (map.get("special_price").equals("0.00")) { 
      holder.price.setVisibility(View.INVISIBLE); 
      // holder.o_price.setVisibility(View.INVISIBLE); 
      holder.original_price.setText("Rs." + map.get("product_price")); 
      holder.original_price.setTextAppearance(context, R.style.product_price_txt); 

     } else { 
      holder.price.setText("Rs." + map.get("special_price")); 
      holder.original_price.setText("Rs." + map.get("product_price")); 
      holder.original_price.setPaintFlags(holder.original_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
     } 
     /* holder.price.setText("Rs." + map.get("special_price")); 
     holder.original_price.setText("Rs."+map.get("product_price")); 
     holder.original_price.setPaintFlags(holder.original_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);*/ 
     Picasso.with(context).load(map.get("product_image")).placeholder(R.drawable.loading) 
       .fit().into(holder.img); 
     return rowView; 
    } 

} 
+0

それが 'true'のであれば、あなたはImage1'がそうでなければ' Image2'設定 '設定後、' status'文をチェックしています。 – Ironman

+0

私はそれをやっています。そのコードで見てください。 – Yamuna

+0

@Yamunaこんにちは。あなたはこの問題を解決しましたか?ソリューションを共有してください。 –

答えて

0

変更にウィッシュリストにこのライン

holder.wish_list.setImageResource(R.drawable.wishlist); 

を項目を追加して行う方法を私を助けることができます出力を確認してください。

注:

getResources().getDrawableが廃止されました。

あなたは試すことができますContextCompat.getDrawable

holder.wish_list.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.wishlist));

更新:

チェックこの方法。

if(state == true){ 
    // here is default icon and set api value and send it 

}else{ 

// here is click wishlist icon and set api value and send it 
} 

アップデート2:

public class FragmentOne_Adapter extends CursorAdapter { 

     FragmentOne_DbAdapter dbHelper; 

     public FragmentOne_Adapter(Context context, Cursor c, int flags) { 
      super(context, c, flags); 
      // TODO Auto-generated constructor stub 
      dbHelper = new FragmentOne_DbAdapter(context); 
      dbHelper.open(); 
     } 

     @Override 
     public void bindView(View view, final Context context, final Cursor cursor) { 
      // TODO Auto-generated method stub 
      final ViewHolder holder = (ViewHolder) view.getTag(); 

      final int _id = cursor.getInt(cursor.getColumnIndexOrThrow("_id")); 
      String title = cursor.getString(cursor.getColumnIndexOrThrow("title")); 
      String artist = cursor.getString(cursor.getColumnIndexOrThrow("artist")); 
      String volume = cursor.getString(cursor.getColumnIndexOrThrow("volume")); 
      final String favorite = cursor.getString(cursor.getColumnIndexOrThrow("favorite")); 
      String number = cursor.getString(cursor.getColumnIndexOrThrow("number")); 

      // Populate fields with extracted properties 
      holder.txtTitle.setText(title); 
      holder.txtArtist.setText(artist); 
      holder.txtVolume.setText(volume); 
      holder.txtNumber.setText(number); 

      if (favorite.matches("0")) { 
       holder.buttonHeart.setImageResource(R.drawable.heart); 
      } else { 
       if (favorite.matches("1")) { 
        holder.buttonHeart.setImageResource(R.drawable.heartred); 
       } else { 
        holder.buttonHeart.setImageResource(R.drawable.heart); 
       } 
      } 

      holder.buttonHeart.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View arg0) { 
        if (arg0 != null) { 
         FragmentOne_DbAdapter database = new FragmentOne_DbAdapter(context); 
         database.open(); 
         if (favorite.matches("0")) { 
          database.updateItemFavorite(_id, "1"); 
          holder.buttonHeart.setImageResource(R.drawable.heartred); 
         } else if (favorite.matches("1")) { 
          database.updateItemFavorite(_id, "0"); 
          holder.buttonHeart.setImageResource(R.drawable.heart); 
         } 
        } 
        FragmentOne_Adapter.this.changeCursor(dbHelper.fetchAllPlayer1()); 
       } 
      }); 

     } 

     @Override 
     public View newView(Context context, Cursor cursor, ViewGroup parent) { 
      // TODO Auto-generated method stub 
//   View rowView = ((LayoutInflater) context 
//     .getSystemService("layout_inflater")).inflate(
//     R.layout.fragment_fragment_one_slview, parent, false); 
      View rowView = LayoutInflater.from(context).inflate(R.layout.fragment_fragment_one_slview, parent, false); 
      ViewHolder holder = new ViewHolder(); 
      holder.txtTitle = (TextView) rowView.findViewById(R.id.title); 
      holder.txtArtist = (TextView) rowView.findViewById(R.id.artist); 
      holder.txtVolume = (TextView) rowView.findViewById(R.id.volume); 
      holder.txtNumber = (TextView) rowView.findViewById(R.id.number); 
      holder.buttonHeart = (ImageButton) rowView.findViewById(R.id.heart); 

      rowView.setTag(holder); 
      return rowView; 
     } 


     class ViewHolder { 
      TextView txtTitle; 
      TextView txtArtist; 
      TextView txtVolume; 
      TextView txtNumber; 
      ImageButton buttonHeart; 
     } 
    } 
+0

もし私がholder.wish_list.setImageResource(R.drawable.wishlist)のようなものであれば、ここでひとつ言いたいことがあります。これは画像の変更を意味していますが、リストビューをスクロールしているときに以前のものにリセットされます。 – Yamuna

+0

@YamunaDeviは、私がその変更アイコン当分..また、上記の行がない使用を与えている場合は、 'プロジェクト.. – Ironman

+0

をclean'が、私は何も変化が起こっていないリストを、スクロールダウンしたら、そのが'に行く@YamunaDevi – Yamuna

関連する問題