如何查看arraylist java中的所有项目?

时间:2012-07-15 17:01:11

标签: java android list arraylist

在我的Android应用程序中,我希望能够将字符串值添加到我在主要的android活动中声明的静态arraylist。逻辑是这样的:

1)单击按钮时,活动开始。在oncreate方法上,我想将当前活动的类的名称保存到字符串值。例如:

String className = "com.lunchlist.demo";

分配此值后,我想立即将此字符串值添加到我在主要Android活动中声明的静态ArrayList(意味着首先启动的android活动)添加值后

我做了类似的事情:

static String List<String> members = new ArrayList<String>();

这是在我的主要活动中宣布的。现在当我单击一个按钮来启动另一个活动时,我使用它在我的oncreate方法中将当前活动的字符串classname添加到我的arraylist中:

  String className = "com.lunchlist.demo" 
  members.add(className);

现在我的问题是,这会将字符串值添加到我的arraylist并保存以供以后使用吗?例如,如果我单击三个不同的按钮,这将向arraylist添加三个不同的className值。这会存储一个字符串值,该值将为我的成员arraylist保存三个不同的字符串值吗?如何检查我的arraylist中的每个项目以查看在新活动开始时是否添加了值?

我问这个是因为我需要检索它并使用共享首选项存储这些值,然后检索它们并使用字符串值启动一个意图,该值是启动活动的类。我让活动以类名的字符串值开头,我只是在存储它们时遇到了麻烦。

3 个答案:

答案 0 :(得分:20)

回答你的所有问题:

  

这会将字符串值添加到我的arraylist中并保存以供日后使用   使用?

是。你的代码看起来很完美,没有任何问题。

  

例如,如果我单击三个不同的按钮,则会添加三个   arraylist的不同className值。这会存储一个   字符串值,将为我的三个不同的字符串值   成员arraylist?

如果你告诉按钮的onClickListener向成员ArrayList添加一个字符串,那么它将完成,无论你以前是否已经将该成员添加到ArrayList,因为数组列表不关心是否存在是否重复数据。

  

如何检查我的arraylist中的每个项目以查看值是否为   在新活动开始时添加?

您必须使用for或for-each cicle迭代数组列表,然后将该成员名称打印为日志条目。

  • For-each cicle

    for (String member : members){
        Log.i("Member name: ", member);
    }
    
  • 简单的cicle

    int listSize = members.size();
    
    for (int i = 0; i<listSize; i++){
        Log.i("Member name: ", members.get(i));
    }
    

如果您尝试打印/记录索引超出范围的值,即i < 0 || i >= listSize,则会抛出IndexOutOfBoundsException并使您的应用崩溃。

答案 1 :(得分:6)

使用Java 1.5中的Java引入For-Each进行迭代:

for (String s : members){
    Log.d("My array list content: ", s);
}

有关详细信息,请参阅此链接:

http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

答案 2 :(得分:2)

试试这个:)

我们可以通过这两种方式实现

  1. foreach

  2. for loop

  3. 字符串类型arraylist

    ArrayList<String> limits = new ArrayList<String>(); // String arrayList 
    

    使用foreach

                    for (String str_Agil : limits)   // using foreach 
                    {
                        Log.e("Agil_Limits - " , str_Agil);
                    }
    

    使用forloop

                    for(int agil=0; agil<=limits.size(); agil++) // using for loop
                    {
                        Log.e("Agil_Limits - " , limits.get(agil).toString());
                    }
    
相关问题