我有一个Listview,它最初使用一个TextView列出菜单项中的项目。我用来检索所选项目的代码是
menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id)
{
TextView textView = (TextView) itemClicked;
String strText = textView.getText().toString();
});
我现在添加了另一个TextView,这样我就可以为每个项目提供两个值,而我的menu_item.xml看起来像这样
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="10sp">
<TextView
android:id="@+id/rowid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/exhibitor_header" />
<TextView
android:id="@+id/rowidtwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/listview_background"
android:layout_below="@+id/rowid"/>
</RelativeLayout>
如何在选择项目时检索rowid的值?
答案 0 :(得分:5)
然后,不是转换整个视图,而是在该视图中找到正确的TextView
对象。您可以使用findViewById
方法和TextView
的ID:
TextView textView = (TextView) itemClicked.findViewById(R.id.rowid);
String strText = textView.getText().toString();
TextView textView2 = (TextView) itemClicked.findViewById(R.id.rowidtwo);
String strText2 = textView2.getText().toString();
答案 1 :(得分:0)
我建议使用自定义视图和自定义适配器在列表视图项中包含2个文本视图,并将这2个文本视图捆绑在LinearLayout中...
现在当onClick调用时,只需将其强制转换为linearlayout,并使用findviewbyid,您可以访问这两个文本视图。
我希望这符合您的要求