0

このコードでメニューを作成しています:

 public class MainActivity extends ListActivity {

String classes[] = {"Add a fight to the card", "Add a fighter", "Edit a fighter"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setListAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, classes));

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    switch (position){
        case 0:
                Intent intent = new Intent(MainActivity.this, AddFight.class);
                startActivity(intent);
        case 1:
                Intent intent2 = new Intent(MainActivity.this, AddFighter.class);
                startActivity(intent2);
            }
    }

リストでをクリックするcase 0:と、 の代わりにインテントcase 1:が開かれcase 0:ます。これを修正するにはどうすればよいですか?

4

2 に答える 2

4

breakswitch ケースにステートメントを挿入する必要があります。そうしないと、書かれているように、コードが実行されcase 0、すぐに実行case 1されます。

switch (position)
{ 
    case 0:
        Intent intent = new Intent(MainActivity.this, AddFight.class);
        startActivity(intent);
        break;

    case 1:
        Intent intent2 = new Intent(MainActivity.this, AddFighter.class);
        startActivity(intent2);
        break;
}

注: 厳密に言えば、breakinは必要ありませんcase 1。ただし、そうすることをお勧めします。caseまた、これにより、後でステートメントを追加した場合の「失敗」を防ぐことができます。

于 2013-10-13T01:27:51.007 に答える
1

コードはアクティビティを連続して起動します。case ステートメントにブレークを挿入すると、機能します。最後の case ステートメントに break ステートメントを含める必要はありません。

switch (position){
        case 0:
                Intent intent = new Intent(MainActivity.this, AddFight.class);
                startActivity(intent);
                break;
        case 1:
                Intent intent2 = new Intent(MainActivity.this, AddFighter.class);
                startActivity(intent2);
            }
    }
于 2013-10-13T03:30:45.677 に答える