2011-08-19 47 views
1

可怕的标题道歉,但想不到一个更好的。所以我有很多字符串数组在我的strings.xml文件中。我希望能够通过将我的意图资源ID(例如R.array.mystringarray)作为字符串传递给我,然后在我的类中使用此字符串来获取我的String []。这是我迄今试图给你什么,我在Categoris.class试图如何引用字符串是一个字符串数组资源是id?

Intent intent = new Intent(Main.this, Categories.class); 
intent.putExtra("category", "R.array.Categories"); 
startActivity(intent); 

然后一个更好的主意:

myArrayID = (String) bundle.get("category"); 
myArray = getResources().getStringArray(myArrayID))); 

是我的方法甚至可能吗?或者有另一种我忽略的方式。第一个应用程序,仍然在学习绳索

编辑 - 对不起,我的头今晚炸,我完全糊涂在这里。我已经重新编写的问题 - Converting "R.id.myID" from a String to the int value R.id.myID?

回答

2

不知道为什么你要做到这一点,但你可以直接通过INT ID:

Intent intent = new Intent(Main.this, Categories.class); 
intent.putExtra("category", R.array.Categories); //R.array.Categories is an int value 
startActivity(intent); 

然后..

int myArrayID = bundle.getIntExtra("category", 0); 
myArray = getResources().getStringArray(myArrayID))); 
+0

老实说,我觉得这么愚蠢的哈,我发布这个问题后发布了这个。不过谢谢 – Shane

0

在Categoris.class

String myArrayID[]; 
myArrayId=bundle.getStringArray("category"); 
-2

没有太多的答案试试这个,但是这是正确的:看getStringArray。你会想要正确地施放它,但是否则你是对的。

+0

资源getStringArray()方法接受一个int作为输入。如果她想使用String,她需要使用Bundle的getStringArray()方法。 – glorifiedHacker

+0

不,“Bundle.getStringArray”不返回资源数组。被放入Intent extra的类型是不正确的,但我列出的IS的选择方法是正确的。不知道为什么downvotes,但我支持我指出的方法。 – Femi

相关问题