I think the reason it's still not working is because I'm not sure what interface onListItemClick implements, so I tried
public class NewsListActivity extends ListActivity implements OnClickListener and I implemented onClick, to no avail. Anyone know what I should specify for implements? On Nov 4, 6:29 am, FractalBob <[email protected]> wrote: > Thanks for your suggestion, Filip. I added the following to the > ListView: > > public void onListItemClick (ListView l, View v, int position, > long id) > { > item_index = position; > Toast.makeText(this, "item clicked = " + position, > Toast.LENGTH_LONG).show(); > } > But it didn't get executed when I selected an item in the list (the > Toast never got displayed). > > On Nov 4, 1:03 am, Filip Havlicek <[email protected]> wrote: > > > > > > > > > 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#..., > > 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%2Bunsubs > > > [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

