Android でチェックリスト タイプのアプリを作成しています。このアプリでは、リスト ビューに項目を入力し、横にチェック ボックスを配置しています。ユーザーがアイテムをクリックすると、テキストを打ち消し、関連する列のデータベース内のエントリを更新する必要があります。このため、名前と値のペアを TreeMap に格納しています。Name はデータベースの列名に対応し、Value はその列名の値に対応します。私は以下を使用してこれを達成しました:
if ((c.getString(c.getColumnIndexOrThrow("Field130"))).length() > 3) {
String D11 = c.getString(c.getColumnIndexOrThrow("Field130"));
map.put("Field130", D11);
}
ここで、対応するリストビューの 1 つのテキストビューに名前を表示し、2 番目のテキストビューに値を表示したいと考えています。私は次のことを試しました:
ArrayList<TreeMap<String, String>> mylist = new ArrayList<TreeMap<String, String>>();
mylist.add(map);
ListView list = (ListView) findViewById(R.id.list);
ArrayList<String> list1 = new ArrayList<String>(map.values());
dataAdapter = new ArrayAdapter<String>(this,R.layout.chklistlayout,R.id.textView1, list1);
list.setAdapter(dataAdapter);
ただし、値のみが表示されるため、目的の結果を得ることができません。TreeMap をリストビューに直接マップする方法はありませんか? コード全体を作り直すことを意味する場合でも、より堅牢なアイデアを受け入れます。