2012-08-07 74 views
0

試圖採取一個數組位置(的toString),並傳遞到一個新的活動,則使用該字符串以選擇陣列中的新活動打開。使用字符串來選擇陣列

Intent launchingIntent = getIntent(); 
String content = launchingIntent.getData().toString(); 
setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(), R.array.????, R.layout.main)); ` 

的R.array。????需要傳遞的字符串(字符串內容),因爲這是我的數組的名稱,以跟進。

我不能找到一種方法,將字符串變量傳遞給陣列使用的名稱。

編輯:我試着去得到一個ListView控件在同一actvity開闢另一個列表視圖,關閉前一個。

回答

0

的R.array。????需要是傳遞的字符串(字符串 內容),因爲這是我的數組的名稱以跟進。

使用getIdentifier()方法:

Intent launchingIntent = getIntent(); 
String content = launchingIntent.getData().toString(); // this returns the Uri, are you sure you didn't want to get the text from an extra field set in the Intent 
int id = getResources().getIdentifier(content, "array", getPackageName()); 
setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(), id, R.layout.main)); 

我試着去得到一個ListView控件在同一 actvity開闢另一個列表視圖,關閉前一個。

我會建議,因爲你失去了後退按鈕的功能(這可能會混淆用戶)。而是使用不同的活動將相關數據傳遞給Intents或使用片段(特別是ListFragments)。

+0

所以有多個(比如說20+)的課程不會讓我的應用程序停滯不前? – IamERROR 2012-08-30 02:11:21

+0

@IamERROR你不應該爲第一個'ListView'中的每個條目使用一個活動(這是你想要做的?)。相反,創建兩個活動,一個是最初的ListView,另一個是使用上一個活動信息來設置UI的「詳細ListView」。 – Luksprog 2012-08-30 04:15:17