存储要从另一个活动调用的活动列表的最佳方法

时间:2011-08-12 13:59:24

标签: java android

我有以下目标:从扩展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])

1 个答案:

答案 0 :(得分:1)

您需要Class#forName(String className)吗? 它将解决您的问题   但是你的初始(已发布)解决方案有什么问题?我宁愿保留它而不是使用动态类加载,只会将demos的修饰符更改为private static final