从具有两个单独TextView的Listview菜单项中检索值

时间:2011-02-16 13:10:53

标签: android android-layout

我有一个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的值?

2 个答案:

答案 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,您可以访问这两个文本视图。

我希望这符合您的要求