2011-04-01 123 views
-1

我有一个关于填充数组的问题。在我的Android应用程序中,我输入标题和笔记的描述,然后分别将这些标题和描述添加到另一个活动中的数组中。现在它是静态完成的。我想动态地做到这一点。所以,我想必须有循环,我必须能够添加尽可能多的笔记。将输入值传递到数组中

回答

3

使用意向机制:

Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("title", title); 
intent.putExtra("description", desc); 

在你SecondActivity:

Intent intent = getIntent(); 
array[i++] = new MyElement(intent.getExtra("title"), intent.getExtra("description")); 
+0

告诉我更多关于数组的事情,导致我的第一次活动我确切地写了你写的东西。但在第二个......所以,我必须写''''''''''''''[]数组; (String s:array){array [i ++] = new MyElement(intent..getExtras()。getString(“Title”),intent.getExtras()。getString(“Body”);'code'什么是MyElement和我应该在哪里放这个代码??? – lomza 2011-04-01 07:35:47

+0

MyElement这里只是你列表中的元素的一个类,如果它只是一个String,那么你不需要有一个单独的类 – 2011-04-01 07:47:25

+0

感谢您的回答,但它不是( – lomza 2011-04-01 08:03:38

1

所以,你想传递一个整个数组到下一个活动,是这样吗?您可以将整个阵列与putStringArrayListExtra()一起传递,而不是传递单个字符串。这里检查一个例子:pass arraylist from one activity to other

编辑:好的,然后。刚提取的意图相关的字符串,并将其添加到您现有的阵列:

String newTitle = getIntent().getStringExtra("title"); 
mTitles.add(newTitle); 

EDIT2:我看你使用规则排列,而不是名单。你不能调整数组的大小,所以你需要分配一个新的,更长的一个字符串,并复制所有的旧项目。类似这样的:

String[] newTitles = new String[mTitles.length + 1]; 
for (int i=0;i<mTitles.length;i++) { 
newTitles[i]= mTitles[i]; 
} 
mTitles = mNewTitles; 

// add the new item 
mTitles[mTitles.length-1] = "the string you got from the intent"; 
+0

不,不!)我想将第一个活动中输入的值传递给第二个活动中的数组。 – lomza 2011-04-01 08:31:17

+0

没有先将它们放入数组中?为什么?您可以提供两种活动的用例吗? – 2011-04-01 08:40:28

+0

呃...我想把它们放在我的第二个活动中的数组中,这个活动的代码在这里:http://codeviewer.org/view/code:190a。Line 108等...现在我把标题和身体的价值放在一个虚拟的方式中 – lomza 2011-04-01 08:50:53