3
我有以下目標:從擴展ListActivity的主活動列表中,我想要開始其他活動。存儲從另一個活動調用的活動列表的最佳方式
這是主要的活動代碼:
public class SelectionWidgetsExampleActivity extends ListActivity {
private Class[] demos = {ListViewDemo.class, ChecklistDemo.class};
private ArrayAdapter<Class> aa;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
aa = new ArrayAdapter<Class>(this, android.R.layout.simple_list_item_1, demos);
setListAdapter(aa);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(this, demos[position]);
startActivity(intent);
}
}
我的問題是
你將如何解決其主要活動的代碼之外被執行的類別列表的問題?
我的第一個想法是把它放入xml資源文件中作爲字符串數組。我可以很容易從資源創建字符串數組,但不知道如何將字符串轉換爲類 - 我需要這樣的東西:
SomeJavaClass.getMeClassFromString(demos[position])
我只是不確定是否使用Class類型不是一些不好的做法。此外,我在我聲明'Class []演示'說類是原始類型,我應該使用泛型的行中得到一個警告。但是,當我將其更改爲'類 [] demos = {...};'我得到一個錯誤,說*無法創建類 *的通用數組。 –
Tomas
有趣的一點。搜索了一下,發現這個線程http://stackoverflow.com/questions/749425/how-do-i-use-generics-with-an-array-of-classes。然而,在你的情況下,我會使用'@SuppressWarnings(「rawtypes」)',因爲你不關心實際的類,因爲它們將被預定義,甚至不會被轉換成'Activity'。 – ernazm