自定义ArrayList,在类之间传递数据



我有一个带有自定义数组列表格式的片段活动

public class giftsListFormat {
String id;
String name;
String url;
String points;
}
ArrayList<giftsListFormat> giftList = new ArrayList<giftsListFormat>();

我正试图从异步任务类访问此列表格式

private static class MyAsyncTask extends AsyncTask<Void, Void, Void> {
private MyAsyncTask () {
[How can i create an object of giftsListFormat here?]
[How can i access giftList from here]
}
}

试试这个-这可能是您需要的自定义类。

将其声明为全局:

ArrayList<giftsListFormat> details = new ArrayList<giftsListFormat>();

public class giftsListFormat {
String id;
String name;
String url;
String points;
public String getid() {
return id;
}
public void setid(String id)
{
this.id = id;
}
public String getname() {
return name;
}
public void setname(String name)
{
this.name = name;
}
public String geturl() {
return url;
}
public void seturl(String url)
{
this.url = url;
}
public String getpoints() {
return points;
}
public void setpoints(String points)
{
this.points = points;
}
}

将值放入数组列表-执行此

giftsListFormat Detail;
Detail = new giftsListFormat();
Detail.setid("test1");
Detail.setname("test2");
details.add(Detail); 

现在检索值将以下代码放入异步任务中

details.get(i).id.toString();
details.get(i).name.toString();
details.get(i).url.toString();

您可以迭代数组列表的大小。

details.size();

在活动中创建"giftList"全局变量。通过构造函数将上下文发送到AsyncTask。现在您可以按如下方式访问该变量:

private static class MyAsyncTask extends AsyncTask<Void, Void, Void> {
ArrayList<giftsListFormat> giftList;
private MyAsyncTask (Activity activity) {
giftList = activity. giftList;
giftsListFormat ref = giftList.get(pos);
}
}

创建一个giftsListFormat类,如:

public class giftsListFormat{
String id;
String name;
String url;
String points;
//create constructure  and assign parameters which you want to set   
public giftsListFormat(String id, String name,String url, String points){
this.id = id;
this.name = name;
this.url = url; 
this.points = points;
} 
public getId(){
return id;
}
public getName(){
return name;
}
public getUrl(){
return url;
}
public getPoints(){
return points;
}
}

并使用此类,如:ArrayList<giftsListFormat>...

AsyncTask内部,在初始化时设置所有数据。。类似:

giftsListFormat mData = new giftsListFormat(id, name, url, points);

当你想得到的时候,只需要使用get方法。。。

最新更新