在onListItemClick中单独显示HASHMAP值

时间:2015-03-10 16:55:10

标签: android listview arraylist hashmap

我正在使用HASHMAP在列表的单个列表项中显示两个项目,如下面的代码所示。

public class MainActivity extends ListActivity {
HashMap<String, String> item;


 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    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);
    // setOnItemClickListener(selectLesson);
}

@Override
protected void onListItemClick(ListView l, View v, int    position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
    // Map<String, String> nn = list.get(position);

    String item1 = (String)           getListAdapter().getItem(position).toString();
    // item.get(name);


    Toast.makeText(this, item1, Toast.LENGTH_LONG).show();
}

private ArrayList<Map<String, String>> buildData() {
    ArrayList<Map<String, String>> list = new ArrayList<Map<String,String>>();
    list.add(putData("Android", "Mobile"));
    list.add(putData("Windows7", "Windows7"));
    list.add(putData("iPhone", "iPhone"));
    return list;
}

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


    return item;
}

}

我想要的是每当我点击一个listitem时,键值应该显示在单独的toasts.Currently我在一个toast中显示两者并且不知道如何分开它们。

3 个答案:

答案 0 :(得分:1)

当您点击某行时,onListItemClick会被触发。您可以使用getItemAtPosition检索单击的元素:

HashMap<String, String> item = (HashMap<String, String>) l.getItemAtPosition(position);

并从项目中检索信息使用get方法

 String string = item.get("the_key_you_want_to_retrieve");

答案 1 :(得分:0)

替换以下代码

String item1 = (String)getListAdapter().getItem(position).toString();
    Toast.makeText(this, item1, Toast.LENGTH_LONG).show();

通过

String item1 = getListAdapter().getItem(position).getString("name");
   String item2 = getListAdapter().getItem(position).getString("purpose");
    Toast.makeText(this, item1, Toast.LENGTH_LONG).show();
    Toast.makeText(this, item2, Toast.LENGTH_LONG).show();

注意

&#34;名称&#34; - &GT;第一把钥匙根据你的选择

&#34;目的&#34; - &GT;第二个键根据您的选择

答案 2 :(得分:0)

您可以使用拆分功能拆分&#34; item1&#34;

String item1=(String)getListAdapter().getItem(position).toString();
String[] parts = item1.split(" ");
String part1 = parts[0]; // Android
String part2 = parts[1]; // Mobile
 Toast.makeText(this, part1, Toast.LENGTH_LONG).show();
 Toast.makeText(this, part2, Toast.LENGTH_LONG).show();

分割功能用于根据给定条件分割字符串。我在这里使用空格(&#34;&#34;)将item1拆分为两个字符串。