0

私はExpandableListView今一緒に働いています。条件が 2D 配列にある場合、if ステートメントの使用方法を教えてください。私はすでにこのコードを書いていますが、すべての子供をタップすると、常にゲームアクティビティに移動します。私が望むのは、すべての子がタップされると、新しいアクティビティ (子によって異なります) が開かれることです。

私はOOPが初めてです。だから多分あなたは私を助けることができます。ありがとう!

listView.setOnChildClickListener(new OnChildClickListener() {
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        if ( CHILDREN[0][0] == "Management") {
            Intent intent = new Intent(Information.this, Games.class);
            startActivity(intent);
        }
        else if ( CHILDREN[0][1] == "Accountant") {
            Intent intent = new Intent(Information.this, Test.class);
            startActivity(intent);
        }
        else if ( CHILDREN[0][2] == "Economy") {
            Intent intent = new Intent(Information.this, Chat.class);
            startActivity(intent);
        }
        else {
            Intent intent = new Intent(Information.this, MainActivity.class);
            startActivity(intent);
        }
        return true;
    }
});

それが役立つ場合 - これは文字列配列の宣言です:

     private String[][] CHILDREN = { 
        { "Management", "Accountant", "Economy" },
        { "IAB", "Communication" , "Hospitality" },
        { "English", "Theology", "BK", "Elementary" },
        { "Machine", "Electrical", "Industrial" },
        { "Law" },
        { "Doctor" },
        { "Psychology" },
        { "Biology" },
};
4

3 に答える 3

0
listView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
    if ( CHILDREN[groupPosition][childPosition] == "Management") {
        Intent intent = new Intent(Information.this, Games.class);
        startActivity(intent);
    }
    else if ( CHILDREN[groupPosition][childPosition] == "Accountant") {
        Intent intent = new Intent(Information.this, Test.class);
        startActivity(intent);
    }
    else if ( CHILDREN[groupPosition][childPosition] == "Economy") {
        Intent intent = new Intent(Information.this, Chat.class);
        startActivity(intent);
    }
    else {
        Intent intent = new Intent(Information.this, MainActivity.class);
        startActivity(intent);
    }
    return true;
}
});

これを試してください(希望、最終的なコード:))

于 2013-05-23T12:02:40.387 に答える
0

Try CHILDREN[0][0].equals("Management")) instead of CHILDREN[0][0] == "Management"

于 2013-05-23T11:23:15.403 に答える
0

childPosition このようにrefを使用してifステートメントを作成する必要があります

String selString = CHILDREN[groupPosition][childPosition];//parent.getItemAtPosition(childPosition).toString();

それから

 if ( selString.equals("Management"))
            {
                Intent intent = new Intent(Information.this, Games.class);
                startActivity(intent);
            }

等々...

于 2013-05-23T11:24:55.617 に答える