私は初心者ですが、クリックしたときに特定のクラスを呼び出すクリック可能なTextViewのリストを表示するために以下のコードを使用しました。Android:文字列配列をループする - インテントメソッドのロジックに必要なヘルプ
サッカーのチーム名のリストです。
例:
アーセナルのTextViewアーセナル(TextViewのIDが=のARS)の マンチェスター・ユナイテッド チェルシー
クリックすると、TextViewのチェルシー(TextViewの番号= CHE)に クリックars.class呼び出しますがche.classを呼び出します
I 20以上のサッカーチーム名を持っています。
私はループバックしてクリック可能なアクションを割り当てるtextview idの配列を持っています。これは正常に動作します。
私はチーム名の文字列配列を持ち、コードは文字列配列をループし、各チーム名をIntent()メソッドで使用されるClassオブジェクトに割り当てます。
このコードを実行するとリストが生成されますが、チーム名をクリックすると、常に文字列配列の最後の位置であるWol.javaが開きます。
私はアーセナルをクリックしたときにコードがある。ここ
ars.class開くように私は、ロジックを持ついくつかの助けを必要としています。
public final int[] teams = { R.id.ars, R.id.ast, R.id.bir, R.id.bla,
R.id.blp, R.id.bol, R.id.che, R.id.eve, R.id.ful, R.id.hul,
R.id.lee, R.id.liv, R.id.mid, R.id.mnc, R.id.mnu, R.id.nor,
R.id.nwu, R.id.por, R.id.qpr, R.id.sto, R.id.sun, R.id.swa,
R.id.tot, R.id.wes, R.id.wig, R.id.wol };
//String array of teamnames, named to correspond their class name.
public final String[] teamnames = { "ars", "ast", "bir", "bla", "blp",
"bol", "che", "eve", "ful", "hul", "lee", "liv", "mid", "mnc",
"mnu", "nor", "nwu", "por", "qpr", "sto", "sun", "swa", "tot",
"wes", "wig", "wol" };
TextView tv;
Class classname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.m_transfers);
setTeamNames(); //Method sets up team names to a Class name.
for (int i = 0; i < teams.length; i++) {
tv = (TextView) findViewById(teams[i]);
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent open = new Intent(Transfers.this, classname);
startActivity(open);
}
});
}
;
}
public void setTeamNames() {
for (String s : teamnames) {
String name = "ttj.android.ft.teams." + s;
try {
classname = Class.forName(name);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
;
}
あなたは真剣に、各チームに1つずつ、20の異なるアクティビティを作成したとお考えですか?なぜ、 'Activity '(例えば' TeamActivity'と呼ばれる)を持っていて、 'startActivity(...)'に使う 'Intent'の文字列' Extra'としてチーム名を渡すのはなぜですか? – Squonk
非常に新しいアンドロイドの開発、まだマニフェストの周りに私の頭を得ています。はい、私はマニフェストで20の別々のアクティビティを作成しました。マニフェストでTeamActivityを作れますか? – tiptopjat
@tiptopjat MisterSquonkが述べたように、20種類のアクティビティを作成したのと同じように、マニフェストに1つのTeamActivityを作成し、インテントに文字列またはintを追加して区別することができます。 – Tushar