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

时间:2014-02-12 06:00:16

标签: android arraylist

我有自定义arraylist格式的片段活动

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

我正在尝试从asynctask类

访问此列表格式
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]
 }
  }

3 个答案:

答案 0 :(得分:1)

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

将此声明为全局:

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

答案 1 :(得分:0)

在您的活动中制作“giftList”全局变量。 通过Constructor将上下文发送到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);
 }
  }

答案 2 :(得分:0)

创建一个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方法......