Hi Bob,

since you are using ListActivity, you can override onListItemClick instead
of creating new OnItemClickListener. More information here

http://developer.android.com/reference/android/app/ListActivity.html#onListItemClick(android.widget.ListView,
android.view.View, int, long)

That should fix your problem.

Best regards,
Filip Havlicek

2010/11/4 FractalBob <[email protected]>

> I thought I knew how to catch list selection events in Android and
> then I regained consciousness. In my situation, I have a ListView that
> I populate with a custom view, all of the same class (let's call it
> the NewsChannel() class). NewsChannel consists of a LinearLayout of
> ImageViews and TextViews. When the list is displayed, the user may
> select a NewsChannel item in the list; I want to find out which list
> item was selected.
>
> Also, I registered an onClickListener to one of the TextViews and that
> works fine: when the text is clicked on, an activity is launched which
> is looking for the position of the NewsChannel item in the list.
>
> So, here's what my code looks like:
>
> 1. Registering the onClickListener in the ListActivity:
>
> public class NewsListActivity extends ListActivity
> {
>                        .
>                        .
>                        .
>    public void onCreate(Bundle icicle)
>    {
>        super.onCreate(icicle);
>        setContentView(R.layout.news_list_format);
>
>        ListView lv = getListView();
>
>        lv.setOnItemClickListener(new OnItemClickListener() {
>            public void onItemClick(AdapterView<?> parent, View view,
>                int position, long id) {
>              // When clicked, show a toast with the TextView text
>                item_index = position;
>              Toast.makeText(getApplicationContext(), "item clicked =
> " + position, Toast.LENGTH_SHORT).show();
>            }
>          });
>
>                        .
>                        .
>                        .
> 2. The layout for the ListView associated with NewsListActivity:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/
> android"
>    android:orientation="vertical"
>    android:layout_width="fill_parent"
>    android:layout_height="fill_parent"
>    android:background="@drawable/wpaper_tile"
>    >
>    <ListView android:id="@id/android:list"
>        android:layout_width="fill_parent"
>        android:layout_height="fill_parent"
>        android:layout_alignParentTop="true"
>        android:dividerHeight="15dp"
>        android:divider="@android:color/transparent"
>                android:cacheColorHint="@android:color/transparent"
>        android:scrollbars="none"
>        />
>    <FrameLayout
>        android:layout_width="fill_parent"
>        android:layout_height="55dp"
>        android:layout_centerHorizontal="true"
>        android:layout_alignParentBottom="true"
>        android:background="#88000000"
>        />
>    <ImageView
>        android:layout_width="fill_parent"
>        android:layout_height="wrap_content"
>        android:layout_centerHorizontal="true"
>        android:layout_alignParentBottom="true"
>        android:src="@drawable/phonetop_bg"
>        />
> </RelativeLayout>
>
> 3. The NewsChannel layout:
>
> <?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="wrap_content">
>
>    <include layout="@layout/news_heading_format"
>        android:id="@+id/news_heading_header"/>
>
>    <ImageView android:id="@+id/news_channel_image"
>        android:layout_width="88dp"
>        android:layout_height="66dp"
>        android:layout_alignParentLeft="true"
>        android:layout_below="@id/news_heading_header"
>        android:padding="10dp" />
>
>    <TextView android:id="@+id/news_channel_text"
>        android:lines="4"
>        android:inputType="textMultiLine"
>        android:layout_toRightOf="@id/news_channel_image"
>        android:layout_below="@id/news_heading_header"
>        android:layout_width="fill_parent"
>        android:layout_height="wrap_content"/>
> </RelativeLayout>
>
> When I run the app, the ItemClickListener is never called. However, if
> NewsChannel were of a simpler type, say, a single ImageView or
> TextView embedded in the layout, the callback does get called.
>
> Any idea what I'm doing wrong? My whole goal is simply to let the
> activity launched by NewsChannel (not shown) to find out which
> instance of NewsChannel it was launched from. Thanks, in advance!
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to