我想从这里发送字符串:
@Override
public void onBindViewHolder(ViewHolder hold, int position) {
Glide.with(context)
final String id=list_data.get(position).get("id"); //This is my string
}
到这里:
private void hapus(){
class cari extends AsyncTask<String,Void,String> {
....
KEY_ID = ??? //here
....
}
}
完整代码:
我很抱歉这里无法粘贴完整代码,因为我在这里粘贴了相同的代码
答案 0 :(得分:0)
让onBindViewHolder返回字符串ID。
答案 1 :(得分:0)
尝试这样使您的String公共静态,以便您可以在应用程序的任何位置使用它
克里特这样的一个类
public class Utils{
public static String final_id="";
}
现在像这样访问你的字符串
@Override
public void onBindViewHolder(ViewHolder hold, int position) {
Glide.with(context)
Utils.final_id=list_data.get(position).get("id"); //This is my string
}
您可以使用它像这样
来检索您的String数据private void hapus(){
class cari extends AsyncTask<String,Void,String> {
String KEY_ID = Utils.final_id;
}
}
答案 2 :(得分:0)
从ViewHolder类的onBindViewHolder()方法调用异步任务不是一种可接受的方法,因为对于在Recycler ListView中循环的每个项目,Asyn Task会一次又一次地被调用。 (即使在滚动期间。)
更改逻辑(或)使用不同的方式来处理场景。
答案 3 :(得分:0)
您可以使用Nilesh的答案,也可以使用构造函数初始化String。
@Override
public void onBindViewHolder(ViewHolder hold, int position) {
Glide.with(context)
final String id=list_data.get(position).get("id"); //This is my string
new yourClass(id);
}
然后在课堂内
private String id;
public yourClass(){} //default constructor
public yourClass(String id){
//Now you can use this id wherever you want to use
this.id = id;
}
使用构造函数,您可以根据需要发送多个内容,并在类中初始化它们并根据您的要求使用它们。 希望它有所帮助!!