2016-03-23 14 views
0

私は、volleyを使用してデータを取得し、recyclerview.iを使用してフィードに表示するアプリケーションで作業しています。その特定のカードのテキストビュー(ボタンのようなinstagramのような)に表示します。今、ボタンのクリック時に、mysqlデータベースのカード内の他の項目と同じ行のカラム(好きなもの)にクリックの値を保存したい。これは私がやったことですが、私はそれを得ていません。誰も助けてもらえますか?これは、あなたが、多くのユーザーがその同じが好き起こる可能性があり、マルチユーザーの場合におけるサーバB'zのにその特定のカード(データ)のIDを送信する必要が...volleyを使用してbuttonを使用してrecyclerviewの特定のカードからmysqlにデータを保存

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

答えて

0

私のコードですか?

一方、サーバー側でリクエストを取得すると、dbからカウントを取得し、その応答をデバイスに送信し、dbに格納し、ユーザーにカウントするような応答表示を取得します。

関連する問題