Получение значения из пункта меню Listview, который имеет два отдельных TextViews - PullRequest
2 голосов
/ 16 февраля 2011

У меня есть 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 ]

5 голосов
/ 16 февраля 2011

Затем вместо того, чтобы привести весь вид, найдите внутри этого вида правильный TextView объект.Вы можете ссылаться на него, используя метод findViewById и идентификатор TextView:

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();
0 голосов
/ 16 февраля 2011

Что ж, я предлагаю использовать пользовательский вид и пользовательский адаптер, чтобы иметь 2 текстовых вида в элементах списка и объединить эти 2 текстовых вида в LinearLayout ...

теперь, когда вызывается onClick, просто приведитеlinearlayout и на основании этого с помощью findviewbyid вы можете получить доступ к обоим текстовым представлениям.

Я надеюсь, что это удовлетворяет вашему требованию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...