私はAndroidが初めてです。私は listView ベースのアプリに取り組んでいます。メイン メニューがあり、アイテムをクリックすると、新しいアクティビティが別のメニューで開始されます。もう一度クリックすると、選択したコンテンツで新しいアクティビティが開始されます。私は非常に多くのメニュー項目を持っているので、考えられるすべてのケースを処理するリスナーを作成する必要があるため、似たようなものがあります:
@Override public void onItemClick(AdapterView<?> listAdapter, View v, int position, long id) {
String text = ((TextView)v).getText().toString();
//main menu
if (text.equals(K.getStringById(K.ID_MAIN_THEORY))) {
...
} else if (text.equals(K.getStringById(K.ID_MAIN_EXERCISE))) {
...
}
else if (text.equals(K.getStringById(K.ID_MAIN_TABLES))) {
...
}
//here other menus' items: lots of items
...
//back item
else if (text.equals(K.getStringById(K.ID_BACK))) {
activity.finish();
}
Intent i = new Intent(...);
startActivity(i);
}
* K is a class that holds ids' references
ハードコーディングされたリスナーの動作を回避する方法はありますか?
** PS: リストの TextView が正しくレンダリングされません: テキストは黒ではなく薄い灰色に見えます! うーん