如何从ListView获取自定义项目,其行在android中有多个项目

时间:2017-09-18 15:32:59

标签: android listview

我希望在ListView行被cliked时得到自定义项目.i在一行上有很多项目,当我按下ListView行时,我得到该行的所有项目,而我需要其中一行。请帮我拿到自定义项目

我的代码:

        ....
     if (userList.size() != 0) {
        //Set the User Array list in ListView
        adapter = new SimpleAdapter(getActivity(), userList,          R.layout.tab_0_requests_list_adapter_view,
                          new String[]{"full_name", "school", "level", "driver_fullname", "driverphone_number","plate_no","year"},
                new int[]{ R.id.names, R.id.School, R.id.SchoolLevel,     R.id.drivername, R.id.driverphone, R.id.busplateno, R.id.agenumber});

           myList.setAdapter(adapter);

        }
    ....

    myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View convertView, int position,
                                long id) {
    String name = parent.getItemAtPosition(position).toString();
       Toast.makeText(getActivity(), name, Toast.LENGTH_SHORT).show();
     });
       return v;
}

2 个答案:

答案 0 :(得分:0)

为了绑定到ListView项目中的特定部分(例如TextView),您应该使用自定义布局。 ViewHolder模式将为您提供帮助,因为您可以在单个视图上绑定点击事件。 This example可能会对您有所帮助。

答案 1 :(得分:0)

由于我已经在ArrayList hashmap String中存储了混合数据,我从Arraylist Hasmap字符串中检索了自定义数据,如下所示:

我替换了这些行:

          String name = parent.getItemAtPosition(position).toString();
   Toast.makeText(getActivity(), name, Toast.LENGTH_SHORT).show();

使用:

              HashMap<String, String> hashmap= userList.get(position);
                String string= hashmap.get("level");
                  .....
                Toast.makeText(getActivity(), string,      Toast.LENGTH_SHORT).show();