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迭代数组列表,然后将该成员名称作为日志条目打印.
为每个cicle
for (String member : members){
Log.i("Member name: ", member);
}
Run Code Online (Sandbox Code Playgroud)简单的cicle
int listSize = members.size();
for (int i = 0; i<listSize; i++){
Log.i("Member name: ", members.get(i));
}
Run Code Online (Sandbox Code Playgroud)如果您尝试打印/记录的值索引超出范围,即,i < 0 || i >= listSize而后一个IndexOutOfBoundsException异常会被抛出,并崩溃的应用程序.
使用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
| 归档时间: |
|
| 查看次数: |
51994 次 |
| 最近记录: |