如何获取ListView中显示的特定值?

时间:2014-04-24 11:43:27

标签: android listview

在我的项目中,我有一个数据库,其中有一个名为Student的表。在该表格中,我将其归类为ROLL_NO,FIRST_NAME,LAST_NAME,CONTACT,CLASS_NAME,PASSWORD,EMAIL_ID,GENDER。 我正在从数据库中读取所有学生数据,并在列表视图中仅显示“FIRST_NAME,LAST_NAME和ROLL_NO”。代码如下:

listView = (ListView) findViewById(R.id.id_student_list);
    db = new DatabaseHelper(this);
    ArrayList<HashMap<String, String>> Items = new ArrayList<HashMap<String, String>>();

    // Reading all contacts
    Log.d("Reading: ", "Reading all students.."); 
    List<Student> studs = db.getAllStudents(); 

    for (Student cn : studs) {
 // Writing values to map
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("firstname", cn.getFirstname());
        map.put("lastname", cn.getLastname());
        map.put("roll", Integer.toString(cn.getRoll_no()));

        Items.add(map); 
    }


    // Adding Items to ListView
    ListAdapter adapter = new SimpleAdapter(this, Items,
            R.layout.studname_listview, new String[] { "firstname", "lastname", "roll" },
            new int[] {R.id.firstname, R.id.lastname, R.id.rollnumber }); <---- this 
    listView.setAdapter(adapter);

当我点击特定的列表视图项时,我想得到“R.id.rollnumber”里面的值。我在listview上实现了setOnItemClickListener并且它正在工作但是我不知道如何在每次点击listview的任何项目时获得将在textview“R.id.rollnumber”上显示的值。

这是我的listview元素xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TextView
    android:id="@+id/firstname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10sp"
    android:text="sameer"
    android:textSize="16sp"
    android:textStyle="bold" >
</TextView>

<TextView
    android:id="@+id/lastname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/firstname"
    android:layout_alignBottom="@+id/firstname"
    android:layout_toRightOf="@+id/firstname"
    android:text="waskar"
    android:textSize="16sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/rollnumber" <!-- the value which will be displayed in here -->
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/lastname"
    android:layout_alignBottom="@+id/lastname"
    android:layout_alignParentRight="true"
    android:layout_marginRight="22dp"
    android:textStyle="bold" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

哈希映射?您应该为学生信息创建特殊类,并覆盖适配器的OnItemClick方法