2016-03-24 3 views
1

Я пытаюсь получить текст элемента key + value (All text of row), когда пользователь нажимает строку, но я не могу понять, как это сделать, код:Как получить текст onClick из Listview, который использует SimpleAdapter

lv = (ListView) findViewById(R.id.list_view); 

    simpleAdapter = new SimpleAdapter(
      this, 
      scriptList, 
      android.R.layout.simple_list_item_2, 
      new String[] {"value","key"}, 
      new int[] { android.R.id.text1,android.R.id.text2 }); 

    lv.setAdapter(simpleAdapter); 

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    //###### 
    // HOW DO I GET THE ITEM TEXT (BOTH PARAMS, KEY + VALUE)? 

    }); 
+0

Вы пытались присвоить имя строке, чтобы вы могли вызвать ее в методе onItemClick? – Alvaro

ответ

2

parent.getItemAtPostion возвращает товар в позиции. В вашем случае scriptList должен быть ArrayList<HashMap<String, String>>. Таким образом, позиция в позиции равна HashMap<String, String>.

HashMap<String, String> item = (HashMap<String, String>) parent.getItemAtPostion(position); 
String value = item.get("value"); 
String key = item.get("key"); 
+0

Спасибо, это было быстро :) – Eli

1

Вы можете использовать position аргумент в onItemClick метод, чтобы получить данные из набора данных.

HashMap<String, String> clickedItem = (HashMap<String, String>) scriptList.get(position); 
String value = clickedItem.get("value"); 
String key = clickedItem.get("key"); 
Смежные вопросы