2012-04-04 2 views
0

の作成:は、カスタムhashmapadapter

Hashmap contains (String, String) 

どのように私は、カスタムアダプタをインスタンス化することができますか?カスタムアダプターは、ベースアダプターを拡張する必要があります。 "KEY + VALUE"、 "KEY + VALUE" ...のように見えるように、キーと値の両方を組み合わせる必要があります。これを配列VALUESに割り当てます。配列VALUESは、私がカスタムアパーチャを特定するときに後で使用されます。

インスタンス化は次のようになります。コードは大きな助けになるよう

MyCustomAdapter adapter = new MyCustomAdapter(this, android.R.layout.simple_list_item_1, VALUES); 
setListAdapter(adapter) 

私はここに失われています。

THANKS グラハム

次のリストは、そのデータソースとしての項目と呼ばれる文字列の配列を使用しています。アイテムは、私は使用を中止し、代わりに、その代わりに、彼はなります項目のリストを提示されているユーザーのMyハッシュマップ

から連結キー+値のペアを使用して起動したい文字列配列であるしかし

public ArrayList<String> myList = new ArrayList<String>(Arrays.asList(items)); 

ハッシュマップhm

+0

私は本当にあなたがやろうとしているかを理解していない...あなたがユーザーにキー+値のリストを表示したい場合はペアでは、私の答えにコードを使用するだけです。この[リンク](http://stackoverflow.com/questions/5234576/what-adapter-shall-i-use-to-use-hashmap-in-a-listview)を見てください。 – Ant4res

答えて

1

私はあなたがカスタムアダプターを使用する必要はないと思うキー+値のペアのリストを提示した。あなたのレイアウトは非常にシンプルで、TextAdViewだけが必要なので、ArrayAdapterを使うことができます。 あなたが行うことができますたとえば:

HashMap<Integer,String>hm=new HashMap<Integer,String>(); 
Vector<String>elements=new Vector<String>(); 
for(int i=0; i<=10;i){  
     hm.put(i,("num"+i)); 
    } 
    for (Entry<Integer, String> e : hm.entrySet()) { 
     String newString=e.toString(); 
     elements.add(newString); 
    } 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements); 
    list.setAdapter(adapter); 
+0

こんにちは、それは今より良く見えますが、私のリストで私は0 = num1を得る....私は、次のハッシュマップhm.put( "ワン"、 "アップル")の値でそれを設定したい。 hm.put( "two"、 "Mango"); hm.put( "three"、 "Grape");値とキーは要素に集中する必要があります。 – user803271

+0

(int i = 0; i <= 10; i ++){hm.put(1、 "Apple"); hm.put(2、 "Mango"); hm.put(3、 "Grape"); hm.put(4、 "Orange"); hm.put(5、 "Peach"); } for(Entry e:hm.entrySet()){String newString = e.toString(); elements.add(newString); } – user803271

+0

どのようにそれらをリストに表示しますか?アップル、マンゴー、ブドウのみ?これを行うには、 'e.getValue()。toString()'を使って 'e.toString()'を変更するだけです。 – Ant4res