0

最初に私はプログラミングの初心者であり、ユーザーが Clear_data を選択したときにユーザーを連れて行くようなことをしたかったので、その人を Clear_data アクティビティに連れて行きます。

一般的なプログラミングでまだ少し迷っているので、try and catch で問題が発生しています。最初の選択肢である Text_Colour を選択してテストすると、Text_Colour の代わりに Clear_data アクティビティが開きます。

コードは次のとおりです。

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

おそらく、次のようなスイッチ演算子を追加する必要があります。

@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 に答える