Clickable ListView

前端 未结 2 1915
傲寒
傲寒 2021-01-17 06:37

I\'m looking now a few days for a solution for clickable items in a listView.

First I came across this: developer.android.com/resources/articles/touch-mode.h

相关标签:
2条回答
  • 2021-01-17 07:02

    List items should be clickable right out of the box. You can check how lists are coded by looking at ApiDemos project code. It should be present on your local machine since it is a part of the SDK. I have it at <root_sdk_folder>\platforms\android-2.0.1\samples\ApiDemos.

    0 讨论(0)
  • 2021-01-17 07:11

    How do you create your instance of ClickableListAdapter ?

    When you create your list adapter, you have to pass a resource id viewId, this should be a layout which will be inflated later.

    public ClickableListAdapter(Context context, int viewid, List objects) {  
    
            // Cache the LayoutInflate to avoid asking for a new one each time.  
            mInflater = LayoutInflater.from(context);  
            mDataObjects = objects;  
            mViewId = viewid;
    

    Below, the code inflate the xml layout passed to the constructor and call createHolder.

    view = mInflater.inflate(mViewId, null);  
    // call the user's implementation  
    holder = createHolder(view); 
    

    So make sure that when instantiating your ClickableListAdapter, you pass a layout instead of an id

    Edit You have to create a xml layout with the following which is taken from the link you have provided:

    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout  
      xmlns:android="http://schemas.android.com/apk/res/android"  
      android:layout_width="fill_parent"  
      android:layout_height="wrap_content"  
      android:orientation="horizontal"  
      android:gravity="center_vertical"  
      >  
    
    <TextView android:text="Text" android:id="@+id/listitem_text"  
                android:layout_weight="1"   
                android:layout_width="fill_parent"   
                android:layout_height="wrap_content"  
                ></TextView>  
    <ImageView android:id="@+id/listitem_icon"  
                android:src="@drawable/globe2_32x32"  
                android:layout_width="wrap_content"   
                android:layout_height="wrap_content"  
                android:maxWidth="32px"  
                android:maxHeight="32px"  
                >  
    </ImageView>  
    </LinearLayout>
    

    If you call it mylistrow.xml in the layout directory, so you construct your adapter as :

    adapter = new MyClickableChannelListAdapter(this, R.layout.mylistrow, channelList); 
    setListAdapter(adapter);
    
    0 讨论(0)
提交回复
热议问题