2016-09-28 8 views
0

私はjsonデータを解析し、それをlistviewにCHOICE_MODE_MULTIPLEで表示します。私は自分のケースでハッシュマップのキーを取得しようとしていますが、私はその値を取得することしかできません。ここでAndroidは、リストビュー内のArraylistのキーマップを取得します。CHOICE_MODE_MULTIPLE

enter image description here

JSONデータ

57->Steak Doness 
58->Size 
59->Cooking Method 
63->Coldness 

はlogcatでコーディング

String option_data = jsonObject.getString("option_data"); 
JSONObject jsonObject1 = new JSONObject(option_data); 
Iterator<String> iterator = jsonObject1.keys(); 
ArrayList arrayList = new ArrayList<HashMap<String, String>>(); 

HashMap<String, String> map = null; 
while (iterator.hasNext()) { 
    String id = iterator.next(); 
    String name = jsonObject1.getString(id); 
    map = new HashMap<String, String>(); 
    map.put("id", id); 
    map.put("name", name); 
    arrayList.add(name); 
} 

ArrayAdapter adapter = new ArrayAdapter<String>(item_add.this, android.R.layout.simple_list_item_multiple_choice, arrayList); 
final ListView listView = (ListView) findViewById(R.id.listview); 
listView.setAdapter(adapter); 
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

Button button = (Button) findViewById(R.id.submit); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     String selected = ""; 
     SparseBooleanArray sparseBooleanArray = listView.getCheckedItemPositions(); 
     for (int i = 0; i < listView.getCount(); i++) { 
      if (sparseBooleanArray.get(i)) { 
       selected += listView.getItemAtPosition(i).toString() + ","; 
      } 
     } 
     Log.d("selected", selected); 
    } 
}); 

あり、それは私がワンどのような、しかし

D/selected: Steak Doness,Size, 

を示し取得するキーは、ボタンをクリックすると "id"を意味するハッシュマップのキーです。誰でもその方法を知っていますか?

答えて

1

反復と...キー

 HashMap <String,String> mapOne= new HashMap(); 
     mapOne.put("1","1value"); 
     mapOne.put("2","2value"); 
     mapOne.put("3","3value"); 

     for(Map.Entry<String, String> mapEntry : mapOne.entrySet()){ 
     if (mapEntry.getValue().equals("3value")) { 
      //System.out.println(mapEntry.getKey()); 
      Log.d("selected", mapEntry.getKey()); 
     } 
    } 
+0

THXの値を見つけるために、以下の方法を使用しますが、それは動作しません。 logcatは何も表示しませんでした。それに応じてコーディングを変更できますか? – gosulove

+0

ボタンをクリックしたときとまったく同じコードを試してみましたか?それが動作しているかどうかを確認してください。 onClick内にコメントコードを入れて、自分のコードを貼り付けてください。 Log.dで私の答えを編集しました – Stallion

+0

はい、ボタンをクリックしてテストしました。 Log.dも試しました。 – gosulove

関連する問題