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

K D*_*K D 5 java android list arraylist

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

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

String className = "com.lunchlist.demo";
Run Code Online (Sandbox Code Playgroud)

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

我做了这样的事情:

static String List<String> members = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

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

  String className = "com.lunchlist.demo" 
  members.add(className);
Run Code Online (Sandbox Code Playgroud)

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

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

yug*_*oid 21

回答你的所有问题:

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

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

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

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

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

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

如果您尝试打印/记录的值索引超出范围,即,i < 0 || i >= listSize而后一个IndexOutOfBoundsException异常会被抛出,并崩溃的应用程序.


Kum*_*tra 6

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

for (String s : members){
    Log.d("My array list content: ", s);
}
Run Code Online (Sandbox Code Playgroud)

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

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