Пользовательский ListActivity и onListItemClick для внутренних представлений - PullRequest
2 голосов
/ 27 июня 2011

У меня есть собственный ListView с пользовательским адаптером, расширяющим ArrayAdapter.ArrayAdapter раздувает xml двумя представлениями:

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

    <TextView android:id="@+id/filePickerTextView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:minHeight="?android:attr/listPreferredItemHeight"
        android:focusable="true" android:text="item" />

    <ImageView android:layout_width="wrap_content"
        android:focusable="true" android:src="@drawable/icon"
        android:layout_height="fill_parent" android:id="@+id/filePickerImageView1"
        android:layout_alignParentRight="true" android:layout_alignRight="@android:id/text1"></ImageView>

</RelativeLayout>

В методе ListActivity onListItemClick я получаю представление RelativeLayout.Что мне нужно, это знать, какой именно вид был нажат (TextView или ImageView).Я могу получить это в адаптере, установив слушателей, но мне это нужно в ListActivity.Причина в том, что мне нужно поднять setResult, основываясь на щелчке мышью.

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Через 5 месяцев я вернулся к своему проекту и нашел решение для своего вопроса. Самый простой способ - передать контекст пользовательскому адаптеру.

https://stackoverflow.com/a/4197364/214081

1 голос
/ 27 июня 2011

В классе пользовательских адаптеров вы можете использовать приведенный ниже код, затем нажать на Textview, соответственно, вы получите сообщение с тостами и нажать на imageview, а затем соответственно получить сообщение с тостами.

 holder.filePickerImageView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });

  holder.filePickerTextView1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // toast message;

        }
    });
...