0

首先,我是一个编程菜鸟,我想做一些事情,比如当他/她选择 Clear_data 时带用户去,它会带这个人去 Clear_data 活动。

我遇到了 try and catch 的问题,因为我在一般编程中仍然有点迷失。当我选择第一个选项 Text_Colour 时测试它,它会打开 Clear_data 活动而不是 Text_Colour。

这是代码:

public class Settings extends ListActivity {


String classes[] = { "Text_Colour", "Clear_data", "Contact Developer" };


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

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);

    String colours = classes[0];
    String cdata = classes[1];

    try {
    Class Class1 = Class.forName("com.example.test1." + colours);
    Intent intent1 = new Intent(Settings.this, Class1);
    startActivity(intent1);
    }catch(ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
    Class Class2 = Class.forName("com.example.test1." + cdata);
    Intent intent2 = new Intent(Settings.this, Class2);
    startActivity(intent2);
    } 
    catch(ClassNotFoundException d) {
        d.printStackTrace();
    }   

}

谢谢你们的时间。

4

1 回答 1

2

您可能应该像这样添加一个 switch 运算符:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);

    String colours = classes[0];
    String cdata = classes[1];

switch(position){
case 0:
    try {
    Class Class1 = Class.forName("com.example.test1." + colours);
    Intent intent1 = new Intent(Settings.this, Class1);
    startActivity(intent1);
    }catch(ClassNotFoundException e) {
        e.printStackTrace();
    }
break;
case 1:
    try {
    Class Class2 = Class.forName("com.example.test1." + cdata);
    Intent intent2 = new Intent(Settings.this, Class2);
    startActivity(intent2);
    } 
    catch(ClassNotFoundException d) {
        d.printStackTrace();
    }   
break;
}

}
于 2012-11-27T18:32:52.377 回答