在Android中命名意图

时间:2012-01-10 17:57:23

标签: android arrays list android-intent

我想通过列表开始一个意图。 但我不希望布局文本成为意图的名称,它现在就是。我该如何定制?

这是我尝试制作它:

public class Menu extends ListActivity {
String Names[] = { "1 To 9 Tabels", "10 To 19 Tabels" };
String Classstart[] = {".First, .Second"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter <String>(Menu. this, android.R.layout.simple_list_item_1, Names));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    String Classstart = Names[position];
    try {
        Class ClassNames;
        ClassNames = Class.forName("com.sapphire.android." + Classstart);
        Intent StartIntent = new Intent(Menu. this, ClassNames);
        startActivity(StartIntent);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的代码,那么当您点击某个项目时它会崩溃,因为您启动了错误的活动。尝试将其更改为:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    String activity = Classstart[position];
    try {
        Class ClassNames;
        ClassNames = Class.forName("com.sapphire.android." + activity);
        Intent StartIntent = new Intent(Menu. this, ClassNames);
        startActivity(StartIntent);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

请注意,我只是从Classstart数组而不是Names数组中获取类名。