2011-04-01 120 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