Hi Chander,
thanks for your help.
I have added
android:focusable="false"
to the layout xml file but the result appears to be the same.
I thought this type of listActivity working with buttons etc is
supposed to be straightforward. But I failed to find a working example
so far. I am stucked here.
On Jan 31, 8:22 am, Chander Pechetty <[email protected]> wrote:
> make sure your list item does not contains focusable children (like
> buttons, imageviews)
> setting android:focusable="false" usually works for buttons and so
> on...
>
> On Jan 30, 2:42 pm, qmwestview <[email protected]> wrote:
>
> > Hi,
>
> > I have a workingListActivityclass. Each of the list item consists of
> > an ImageView and a TextView.
>
> > However, when I try to replace the ImageView withImageButton, The
> > list becomes unselectable. The onListItemClick or any other function
> > no longer get called when press a list item (Although the track ball
> > can still focus a list item, but nothing more can be done).
>
> > I have searched the forum and also the internet and failed to find any
> > such working example, apart from one guy reporting a similar problem
> > but with no answer.
>
> > The following is my code:
>
> > 1. The list_item.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">
>
> > <ImageButton
> > android:id="@+id/refresh"
>
> > android:layout_width="wrap_content"
> > android:layout_height="fill_parent"
> > android:layout_alignParentTop="true"
> > android:layout_alignParentBottom="true"
> > android:src="@drawable/refresh" />
> > <TextView
> > android:id="@+id/title"
> > android:layout_width="fill_parent"
> > android:layout_height="fill_parent"
> > android:layout_toRightOf="@id/refresh"
> > android:layout_alignParentBottom="true"
> > android:layout_alignParentRight="true"
> > android:singleLine="true"/>
> > </RelativeLayout>
>
> > 2. the MainListActivityclass:
>
> > import android.app.Dialog;
> > import android.app.ListActivity;
> > import android.content.Context;
> > import android.os.Bundle;
> > import android.util.Log;
> > import android.view.KeyEvent;
> > import android.view.LayoutInflater;
> > import android.view.MenuItem;
> > import android.view.View;
> > import android.view.ViewGroup;
> > import android.widget.BaseAdapter;
> > import android.widget.Button;
> > import android.widget.ImageButton;
> > import android.widget.ImageView;
> > import android.widget.ListView;
> > import android.widget.TextView;
>
> > public class TestListActivity extendsListActivityimplements
> > Constants {
>
> > @Override
> > public void onCreate(Bundle savedInstanceState) {
> > super.onCreate(savedInstanceState);
> > setListAdapter(new EfficientAdapter(this));
> > }
>
> > @Override
> > protected void onListItemClick(ListView l, View v, int index, long
> > id) {
> > Log.i("", "onListitemClick");
> > }
>
> > public boolean onContextItemSelected(MenuItem item) {
> > Log.i("", "onContextItemSelected");
> > return false;
> > }
>
> > private class EfficientAdapter extends BaseAdapter implements
> > Constants {
> > private LayoutInflater layoutInflater;
>
> > Context ctx;
> > public EfficientAdapter(Context context) {
> > // Cache the LayoutInflate to avoid asking for a
> > new one each time.
> > layoutInflater = LayoutInflater.from(context);
> > ctx = context;
> > }
>
> > @Override
> > public int getCount() {
> > Log.i("", "getCount");
> > return SIZE;
> > }
>
> > @Override
> > public Object getItem(int position) {
> > Log.i("", "getItem");
> > return "TBD"; }
>
> > @Override
> > public long getItemId(int positin) {
> > Log.i("", "getItemId");
> > return positin;
> > }
>
> > public void update(int position) {
> > notifyDataSetChanged(); // triggers the view data
> > to be refreshed!
> > }
>
> > /**
> > * Make a view to hold each list item
> > */
> > @Override
> > public View getView(int position, View convertView,
> > ViewGroup
> > parent) {
> > Log.i("", "getView");
> > ViewHolder holder;
> > if (convertView == null) {
> > convertView =
> > this.layoutInflater.inflate(R.layout.list_item,
> > parent, false);
>
> > holder = new ViewHolder();
> > holder.title = (TextView)
> > convertView.findViewById(R.id.title);
> > convertView.setTag(holder);
> > } else {
> > holder = (ViewHolder) convertView.getTag();
> > }
>
> > holder.title.setText(R.string.title);
> > parent.focusableViewAvailable(convertView); //
> > originally without
> > this. Added for testing, still not working!
> > return convertView;
> > }
>
> > private class ViewHolder {
> > //ImageButtonimageButton;
> > TextView title;
> > }
> > }
>
> > }
>
> > Is there any way to makeListActivityworking withImageButtonor this
> > actually can not be achieved (iPhone can this)?
>
> > Any help would be most appreciated.
--
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