2015-03-20 3 views
0

У меня есть ListView, который имеет 1 TextView и 2 кнопки. То, что я пытаюсь сделать, - это когда нажата первая кнопка, я хочу, чтобы она дала мне значение в TextView.Значение TextView из строки Позиция ListView

Я потратил много времени на это, но я не могу найти ответ, который будет правильно работать. У меня есть этот код в моем OnClick метод кнопки:

// position of the button 
int position = pendingList.getPositionForView((View) view.getParent()); 


//extract the text 
String pendingUserText = pendingUsers.get(position).get(R.id.name); 

Что-то следует отметить, что я использую карту ArrayList для заполнения мой ListView и простой адаптер. Когда я это делаю, проблема, которую я получаю, это когда я пытаюсь Toast.make, а затем передаю «pendingUserText». Через него я получаю нулевое значение. Любая помощь будет принята с благодарностью!

Вот XML-файл

<TextView 
    android:id="@+id/name" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="2dip" 
    android:paddingTop="6dip" 
    android:textSize="16sp" 
    android:textStyle="bold" 
    android:height="30dp" /> 
<Button 
    android:id="@+id/addButton" 
    android:layout_height="fill_parent" 
    android:layout_width="wrap_content" 
    android:text="Accept" 
    android:layout_alignTop="@+id/name" 
    android:layout_centerHorizontal="true" 
    android:background="#3366CC" 
    android:textColor="#B0E0E6" 
    android:layout_alignBottom="@+id/name" 
    android:clickable="true" 
    android:bottomLeftRadius="8dp" 
    android:bottomRightRadius="8dp" 
    android:topLeftRadius="8dp" 
    android:topRightRadius="8dp" 
    android:onClick="addButtonClicked" 
    /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:id="@+id/declineButton" 
    android:text="Decline" 
    android:textColor="#B0E0E6" 
    android:background="#3366CC" 
    android:bottomLeftRadius="8dp" 
    android:bottomRightRadius="8dp" 
    android:topLeftRadius="8dp" 
    android:topRightRadius="8dp" 
    android:layout_alignTop="@+id/name" 
    android:layout_alignRight="@+id/name" 
    android:layout_alignEnd="@+id/name" 
    android:layout_alignBottom="@+id/name" 
    android:clickable="true" 
    />' 

Вот мой ListAdapter

istView list = (ListView) findViewById(R.id.friendslistView); 
      ListAdapter adapter = new SimpleAdapter(
        FriendsActivity.this, pendingUsers, 
        R.layout.list_item, new String[] {TAG_FROMUSER}, new int[] { R.id.name}); 
      list.setAdapter(adapter); 
+0

Pls публикует XML-файлы макета и связанный с ним код для вашего списка и адаптера. –

+0

Вы хотите прочитать хороший учебник и перепроектировать свой код? –

+0

@ TheOriginalAndroid Что значит? – Brockify

ответ

0

Найдено ответ.

RelativeLayout vwParentRow = (RelativeLayout)view.getParent(); 
    TextView pending =(TextView)vwParentRow.findViewById(R.id.name); 

для тех, кому это нужно.

Смежные вопросы