0

我用onItemClickListener創建了自定義列表,只有下半部分是可點擊的。該列表使用擴展ArrayAdapter的ImageAdapter。 每行有兩個ImageViews和使用以下XML參數自定義列表:上半部分不可點擊

android:focusable="false" 
android:focusableInTouchMode="false" 
android:clickable="false" 

我跟着this教程,甚至試圖刪除的TextView和ImageView的一個TextView。刪除它們後,該列表完全無法點擊。

這是我的mainActivity

public class ClickTestActivity extends ListActivity 
{ 
String[] listItems={"alpha", "beta", "gamma", "delta", "epsilon"}; 
boolean[] listImages={true, false, true, false, true}; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    setListAdapter(new ImageAdapter(this, R.layout.main, R.id.text1, R.id.image1, listItems, listImages)); 
    getListView().setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   

      Toast.makeText(getApplicationContext(), "Test", Toast.LENGTH_SHORT).show(); 


     } 
    }); 
} 
} 

和我的ImageAdapter

public class ImageAdapter extends ArrayAdapter 
{ 
Activity context; 
String[] items; 
boolean[] arrows; 
int layoutId; 
int textId; 
int imageId; 

ImageAdapter(Activity context, int layoutId, int imageId, String[] items, boolean[] arrows) 
{ 
    super(context, layoutId, items); 

    this.context = context; 
    this.items = items; 
    this.arrows = arrows; 
    this.layoutId = layoutId; 
    this.textId = textId; 
    this.imageId = imageId; 
} 

public View getView(int pos, View convertView, ViewGroup parent) 
{ 
    LayoutInflater inflater=context.getLayoutInflater(); 
    View row=inflater.inflate(layoutId, null); 
    TextView label=(TextView)row.findViewById(textId); 

    label.setText(items[pos]); 

    if (arrows[pos]) 
    { 
    ImageView icon=(ImageView)row.findViewById(imageId); 
     icon.setImageResource(R.drawable.ic_launcher); 
    }  

    return(row); 
} 
} 

和main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layercontainer" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#ffffff">  
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
    <TextView 
     android:id="@+id/text1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:padding="10dp" 
     android:textSize="16sp" 
     android:textColor="#000000"  
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:clickable="false"/> 
    <ImageView 
     android:id="@+id/image1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:clickable="false"/> 
</RelativeLayout> 

回答

0

ListView的佈局被充氣應該是不同的佈局。嘗試使用另一個XML爲TextView的和列表視圖內的ImageView說list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/layercontainer" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#ffffff">  

<TextView 
    android:id="@+id/text1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:padding="10dp" 
    android:textSize="16sp" 
    android:textColor="#000000"  
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:clickable="false"/> 
<ImageView 
    android:id="@+id/image1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:clickable="false"/> 
</RelativeLayout> 

main.xml中只有列表視圖。更改

setListAdapter(new ImageAdapter(this, R.layout.main, R.id.text1, R.id.image1, listItems, listImages)); 

setListAdapter(new ImageAdapter(this, R.layout.list_item, R.id.text1, R.id.image1, listItems, listImages)); 
+0

完美。之前嘗試過:/ 非常感謝 – Seb 2012-03-28 08:45:10