0

初めての Android アプリを作成していますが、問題が発生しました。アプリには、ListView を使用する検索機能があります。ここで、ユーザーは特定のアイテムを検索して、そのアイテムが存在するかどうかを確認できます。これは非常にうまく機能し、このチュートリアルに基づいて実行しました: Android ListView with Search

すべての項目は、array.xml で定義された文字列配列にあります。これで、すべてのアイテムを 1 つまたは複数のコレクションの一部にすることができます。現在、「 ITEM -> Collection(s) 」のように、アイテムの名前の横に含まれているコレクションを表示しています。これは機能しますが、実際にはエレガントなオプションではありません。私がやりたいのは、アイテムの名前を拡張可能な ListView の ITEM として、それが属するコレクションを SUBITEM として持つことです。したがって、親項目用と子項目用の 2 つの文字列配列があります。

私が見つけたすべての例は、「手動で」リストにデータを入力しており、ITEMS 配列を GROUP に、COLLECTIONS 配列を CHILDREN に割り当てる方法がわかりません。

これを明確に説明したかどうかはわかりませんが、要するに次のようになります。

ITEM_1 = 1 番目のグループ名 COLLECTIONS_1 = 1 番目のグループの子

サンプル画像

ありがとうございました!

4

2 に答える 2

0

編集:わかりました、私が望むように展開可能なビューを作成することができました:

public class Search extends ListActivity {
    private String[] l1;
    private String[] l2;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);
        ArrayList<Map<String, String>> list = buildData();
        String[] from = { "name", "purpose" };
        int[] to = { android.R.id.text1, android.R.id.text2 };
        SimpleAdapter adapter = new SimpleAdapter(this, list, android.R.layout.simple_list_item_2, from, to);
        setListAdapter(adapter);
    }

    private ArrayList<Map<String, String>> buildData() {
        l1 = getResources().getStringArray(R.array.items);
        l2 = getResources().getStringArray(R.array.collections);
        Integer i;
        int to = l1.length;
        ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();     
        for(i=0;i < to;i++){
        list.add(putData(l1[i], l2[i]));
        }
        return list;
    }

    private HashMap<String, String> putData(String name, String purpose) {
        HashMap<String, String> item = new HashMap<String, String>();
        item.put("name", name);
        item.put("purpose", purpose);
        return item;
    }
}

今の問題は、どうすればこれをソートできますか?

于 2013-04-03T16:05:07.267 に答える