ユーザーがListView内でクリックしたビューのコンテンツを取得しようとして問題が発生しました。私のListViewは、SimpleAdapterを使用して設定され、リスト内の各項目の「見出し」と「サブタイトル」で構成されています。これらはHashMapを使用して保存されます。
アクティビティ内にもスピナーがあり、ユーザーがスピナーでアイテムを選択すると、ListViewが更新されます。これは正常に機能しており、アクティビティ内で何が起こっているかについても言及する必要があると思いました。
私がやろうとしているのは、ユーザーが選択したアイテムを取得して、ユーザーの選択に基づいて新しいアクティビティに誘導できるようにすることです(現在、Toastでビューの内容を表示しようとしています)。アイテムの「engExp」キーの下に保存されている内容を取得したい。
これが私のコードです:
// HASHMAP FOR LISTVIEW
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
for(int x = 0; x < expressionListForModule.getCount(); x++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("engExp", expressionListForModule.getString(0));
map.put("japDef", expressionListForModule.getString(1));
fillMaps.add(map);
expressionListForModule.moveToNext();
}
// SETUP LISTVIEW
SimpleAdapter adapter2 = new SimpleAdapter(this, fillMaps, android.R.layout.simple_list_item_2, new String[] {"engExp","japDef"}, new int[] {android.R.id.text1, android.R.id.text2});
ListView lv = (ListView) findViewById(R.id.expressionList);
lv.setAdapter(adapter2);
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_LONG).show();
}
});
具体的には、アプリケーションのクラッシュの原因となっている項目は次のとおりです:((TextView)view).getText()
私のコードをもっと見る必要がある場合は、私に知らせてください。
よろしくお願いします。