2016-03-23 10 views
0

Ich arbeite an App, die Daten mit Volley und zeigt im Feed mit Recyclerview.Hat eine Schaltfläche in jeder Karte, die beim Klicken, zählt die Anzahl der Klicks und es in einer Textansicht in dieser bestimmten Karte anzeigen (wie Instagram wie Schaltfläche). Jetzt möchte ich, dass der Wert von Klicks auch in einer Spalte (Likes) in der gleichen Zeile wie die anderen Elemente in der Karte in meiner MySQL-Datenbank gespeichert wird, wenn auf die Schaltfläche geklickt wird. Dies ist, was ich versucht habe, aber ich verstehe es nicht. Kann jemand bitte helfen? Das ist mein Code ...Speichern von Daten in Mysql von bestimmten Karte in Recyclerview mit Knopf mit Volley

package net.simplifiedcoding.myfeed; 
import android.content.Context; 
import android.media.Image; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.ProgressBar; 
import android.widget.TextView; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.ImageLoader; 
import com.android.volley.toolbox.NetworkImageView; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.w3c.dom.Text; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

/** 
* Created by Belal on 11/9/2015. 
*/ 
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> { 
    //Imageloader to load image 
    private ImageLoader imageLoader; 
    private Context context; 

    //List to store all superheroes 
    List<SuperHero> superHeroes; 

    //Constructor of this class 
    public CardAdapter(List<SuperHero> superHeroes, Context context) { 
     super(); 
     //Getting all superheroes 
     this.superHeroes = superHeroes; 
     this.context = context; 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.superheroes_list, parent, false); 
     ViewHolder viewHolder = new ViewHolder(v); 
     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(final ViewHolder holder, final int position) { 
     //Getting the particular item from the list 
      final SuperHero superHero = superHeroes.get(position); 

     //Loading image from url 
     imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader(); 
     imageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.image, android.R.drawable.ic_dialog_alert)); 

     //Showing data on the views 
     holder.imageView.setImageUrl(superHero.getImageUrl(), imageLoader); 
     holder.textViewName.setText(superHero.getName()); 
     holder.textViewPublisher.setText(superHero.getPublisher()); 
     holder.textViewLikes.setText(superHero.getLikes()); 



     holder.custom_button.setOnClickListener(new View.OnClickListener() { 
      int count; 


      @Override 
      public void onClick(View v) { 

       count = 0; 

       superHeroes.get(position).setCount(superHeroes.get(position).getCount() + 1); 
       holder.txtCount.setText(superHeroes.get(position).getCount() + ""); 


       final String url = "http://10.0.2.2/likes.php"; 
       final String KEY_LIKES = "likes"; 
       final String likes = holder.txtCount.setText(superHeroes.get(position).getCount() + "".toString().trim(); 


       StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
         new Response.Listener<String>() { 
          @Override 
          public void onResponse(String response) { 

          } 
         }, 
         new Response.ErrorListener() { 
          @Override 
          public void onErrorResponse(VolleyError error) { 

          } 
         }){ 
        @Override 
        protected Map<String,String> getParams(){ 
         Map<String,String> params = new HashMap<String, String>(); 


         params.put(KEY_LIKES,likes); 


         return params; 
        } 
       }; 
       RequestQueue requestQueue = Volley.newRequestQueue(context); 
       requestQueue.add(stringRequest); 
      } 



     }); 



    } 
    @Override 
    public int getItemCount() { 
     return superHeroes.size(); 
    } 

    class ViewHolder extends RecyclerView.ViewHolder { 
     //Views 
     public NetworkImageView imageView; 
     public TextView textViewName; 
     public TextView textViewPublisher; 
     public TextView textViewLikes; 
     public TextView txtCount; 
     public ImageButton custom_button; 

     //Initializing Views 
     public ViewHolder(View itemView) { 
      super(itemView); 
      imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero); 
      textViewName = (TextView) itemView.findViewById(R.id.textViewName); 
      textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher); 
      textViewLikes = (TextView) itemView.findViewById(R.id.textViewlikes); 
      txtCount = (TextView) itemView.findViewById(R.id.txtCount); 
      custom_button = (ImageButton) itemView.findViewById(R.id.custom_button); 
     } 
    } 
} 

Antwort

0

Sie haben, dass bestimmte Karte (Daten) ID-Server b'z in Multi-User-Fall senden es viele Benutzer passieren kann, so das gleiche mag?

auf der anderen Seite auf der Server-Seite, wenn Sie Anfrage bekommen Anzahl von db und fügen Sie eine in und senden Sie diese Antwort auf Ihr Gerät und auch in db speichern und wenn Sie Antwort Anzeige wie zählen, um Benutzer.

Verwandte Themen