2016-07-14 5 views
1

Ich möchte den Artikel Ihrer Wunschliste hinzufügen/löschen. Ich bekomme eine Antwort von Api, also habe ich ein Tag is_wishlist = true/false, wenn ich eine Anwendung starte, die auf diesem Wert basiert, zeige ich sie in der Wunschliste an, indem ich ein Symbol ändere, aber jetzt frage ich, ob ich das ändere Wishlist Status wie von Hinzufügen zu Remobing zum Hinzufügen, in Api ich bekomme Antwort erfolgreich, aber ich bin nicht in der Lage, die Symbole zu ändern. Das ist mein Code. kann jemand mir helfen, wie Artikel in der WunschlisteHinzufügen und Entfernen des Artikels in die Wunschliste wie flipkart

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

Sie überprüfen, haben die 'status' Aussage, wenn es' true' dann gesetzt 'Image1' anders gesetzt' Image2'. – Ironman

+0

Ich mache das, siehe in diesem Code – Yamuna

+0

@Yamuna Hallo. Hast du dieses Problem gelöst? Bitte teilen Sie die Lösung. –

Antwort

0

Ändern Sie diese Zeile

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

dieser in else

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

und das Gleiche tun zu entfernen oder hinzufügen Teil und überprüfen Sie den Ausgang ..

Hinweis:

getResources().getDrawable veraltet.

können Sie ContextCompat.getDrawable versuchen:

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

UpDate:

Prüfung auf diese Weise.

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 
} 

UpDate 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

Ich möchte eine Sache sagen, hier, wenn ich wie holder.wish_list.setImageResource (R.drawable.wishlist) bin; Das bedeutet, dass sich das Bild ändert, aber wenn ich die Listenansicht scrolle, wird nur in den vorherigen Eintrag zurückgesetzt. – Yamuna

+0

@YamunaDevi hast du das Projekt "sauber gemacht". – Ironman

+0

Wenn ich die obige Zeile gebe auch keine Verwendung .. für die Zeit ist seine Änderung Symbol, aber sobald ich scrolle die Liste keine Änderungen passiert, seine Zurücksetzung – Yamuna

Verwandte Themen