Android: Циклический просмотр массива строк - нужна помощь по логике для метода намерения

Я новичок в Java, и я использую приведенный ниже код для отображения списка интерактивных TextView, которые вызывают определенный класс при нажатии.

Это список названий футбольных команд.

Напр.

Арсенал Манчестер Юнайтед Chelsea

При нажатии на TextView Arsenal (TextView id = ars) вызовется ars.class Нажатие на TextView Chelsea (TextView id = che) вызовет che.class

У меня более 20 названий футбольных команд.

У меня есть массив идентификаторов textview, которые я просматриваю и назначаю им кликабельное действие. Это прекрасно работает.

У меня есть массив строк с именами команд, код перебирает массив строк и присваивает каждому названию команды объект класса, который используется в методе 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();
        }
    }
    ;
}
7
задан tiptopjat 15 May 2012 в 16:40
поделиться