В настоящее время у меня есть представление списка, и я пытаюсь направить представление списка к различным действиям. Так что, если вы щелкнете по элементу, скажем, 1-4, вы получите класс, который соответствует этому. Единственный способ, которым я могу придумать, - это захватить текст элемента в представлении списка и запустить действие с этим именем. Код для него будет выглядеть примерно так:
final String chosen = "";
chosen = (String) ((TextView) view).getText();
Intent nextScreen = new Intent(getApplicationContext(), chosen.class);
Это не работает. В последней строке я получаю сообщение о том, что выбранное не может быть преобразовано в тип.
Я знаю, что ((TextView) view).getText()
работает, потому что
Log.d("Debug", "Test"+((TextView) view).getText());
дает мне правильно выбранный предмет в logcat.
Есть идеи / предложения? Заранее спасибо
EDIT:
Я попытался изменить свой код на это:
String chosen = (String) ((TextView) view).getText();
try {
Intent nextScreen = new Intent(getApplicationContext(), Class.forName(chosen));
startActivity(nextScreen);
Log.d("Debug", "Good"+((TextView) view).getText());
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("Debug", "Bad"+((TextView) view).getText());
}
Log.d("Debug", "Final"+((TextView) view).getText());
Журнал cat дал мне вывод
BadItem1
FinalItem1
Я думаю, что поступаю неправильно, как кто-то указал. Я также думаю, что я должен использовать OnItemClickListener
. Я попробую это и опубликую свои результаты для облегчения помощи в будущем.