我试图从服务器检索我的数据,然后在RecyclerView
的帮助下显示它。我的RecyclerView
包含4个按钮,每个按钮将数据发送到不同的表格。这是我的尝试:只有在onclicklistener后显示Recycler视图的最后一个元素
public class QuoteAdapter extends RecyclerView.Adapter<QuoteAdapter.ViewHolder> {
List<QuoteList> qItems;
String sQuote,sName,sEmail;
public QuoteAdapter(List<QuoteList> qItems) {
this.qItems = qItems;
}
@Override
public QuoteAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.fetch_list, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final QuoteAdapter.ViewHolder holder, int position) {
final QuoteList codeListBeans = qItems.get(position);
final Background background = new Background();
holder.tv_quote.setText(codeListBeans.getQuote());
holder.tv_name.setText(codeListBeans.getName());
holder.tv_email.setText(codeListBeans.getEmail());
sQuote=holder.tv_quote.getText().toString();
sName=holder.tv_name.getText().toString();
sEmail=holder.tv_email.getText().toString();
holder.btn_other.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url = "http://velapanti.esy.es/quotation/other/add.php";
background.execute(sQuote, sEmail, sName);
}
});
holder.btn_love.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url = "http://velapanti.esy.es/quotation/love/add.php";
background.execute(sQuote, sEmail, sName);
}
});
holder.btn_mot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url = "http://velapanti.esy.es/quotation/motivation/add.php";
background.execute(sQuote, sEmail, sName);
}
});
holder.btn_frnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
url = "http://velapanti.esy.es/quotation/friends/add.php";
background.execute(sQuote, sEmail, sName);
}
});
}
class ViewHolder extends RecyclerView.ViewHolder {
public TextView tv_name, tv_quote, tv_email;
public Button btn_other, btn_mot, btn_love, btn_frnd;
public ViewHolder(View itemView) {
super(itemView);
tv_quote = (TextView) itemView.findViewById(R.id.tv_quote);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_email = (TextView) itemView.findViewById(R.id.tv_email);
btn_frnd = (Button) itemView.findViewById(R.id.btn_frnd);
btn_love = (Button) itemView.findViewById(R.id.btn_love);
btn_mot = (Button) itemView.findViewById(R.id.btn_mot);
btn_other = (Button) itemView.findViewById(R.id.btn_other);
}
}
@Override
public int getItemCount() {
return qItems.size();
}
class Background extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
if (isConnection()) {
super.onPreExecute();
progressDialog.show();
} else {
showConnectionErrorDialog();
startActivity(getIntent());
}
}
@Override
protected String doInBackground(String... strings) {
sQuote = strings[0];
sEmail = strings[1];
sName = strings[2];
try {
URL openUrl = new URL(url);
HttpURLConnection httpURLConnection = (HttpURLConnection) openUrl.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream OS = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8"));
String data = URLEncoder.encode("quote", "UTF-8") + "=" + URLEncoder.encode(sQuote, "UTF-8")
+ "&" +
URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(sEmail, "UTF-8")
+ "&" +
URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(sName, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
OS.close();
InputStream IS = httpURLConnection.getInputStream();
IS.close();
httpURLConnection.disconnect();
return "Quotation Added";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
Snackbar.make(layout, result, Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
}
}
是我面临的是,当我点击任何按钮的问题,从最后一排移动到表格不管行从我点击按钮的数据,即,如果我点击任何行的按钮都会发送最后一行的数据,但不会从该按钮所属的行中发送。