获取另一个类的String

时间:2017-06-19 04:03:36

标签: android

我想从这里发送字符串:

@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

        ....
    }

}

完整代码:

AdapterList.java

galery.java

我很抱歉这里无法粘贴完整代码,因为我在这里粘贴了相同的代码

4 个答案:

答案 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;
}

使用构造函数,您可以根据需要发送多个内容,并在类中初始化它们并根据您的要求使用它们。 希望它有所帮助!!