我是一个 java 新手,我使用下面的代码来显示一个可点击的 TextViews 列表,当它们被点击时,它们会调用一个特定的类。
这是一个足球队名称的列表。
例如。
阿森纳 曼联 切尔西
点击 TextView Arsenal (TextView id = ars) 将调用 ars.class 点击 TextView Chelsea (TextView id = che) 将调用 che.class
我有超过 20 个足球队的名字。
我有一组 textview id,我循环遍历它们并为它们分配一个可点击的操作。这工作正常。
我有一个团队名称的字符串数组,代码循环遍历字符串数组并将每个团队名称分配给一个 Class 对象,该对象在 Intent() 方法中使用。
当我运行此代码时,会生成列表,但是当我单击团队名称时,它总是会打开 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();
}
}
;
}