我有一個使用GridView與CustomAdapter(擴展BaseAdapter)的問題。Android GridView自定義BaseAdapter ImageView ImageButton OnItemClick不工作
- 我的活動實現了OnItemClickListener。
- 如果我使用的ImageView作爲項目一切正常,OnItemClick事件將被解僱/逮住
我還沒有找到一個有用的例子,對於使用的ImageButton定製BaseAdapter一個GridView。 有沒有人有想法?
摘錄:
class MyActivity extends Activity implements OnItemClickListener {
...
@Override
public void onCreate() {
...
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setOnItemClickListener(this);
gridview.setAdapter(new ImageButtonAdapter(this));
}
...
@Override
public void onItemClick(AdapterView<?> adapter, View view, int arg2, long arg3)
{
Log.e("onItemClick()", "arg2=" + arg2 + ", arg3=" + arg3);
}
}
public class ImageButtonAdapter extends BaseAdapter
{
private Context mContext;
public LayoutMenuAdapter(Context c)
{
mContext = c;
}
public int getCount()
{
return mThumbIds.length;
}
public Object getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return 0;
}
public View getView(int position, View convertView, ViewGroup parent)
{
/* IF I USE THIS PART EVERYTHING WORKS FINE */
// ImageView imageView;
// if (convertView == null) {
// imageView = new ImageView(mContext);
// imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageView.setPadding(0, 0, 0, 0);
// imageView.setFocusable(false);
// } else {
// imageView = (ImageView) convertView;
// }
// imageView.setImageResource(mThumbIds[position]);
// return imageView;
/* IF I USE THIS PART NO THE ACTIVITY/LISTENER RECEIVES NO EVENT */
ImageButton imageButton;
if (convertView == null) {
imageButton = new ImageButton(mContext);
imageButton.setLayoutParams(new GridView.LayoutParams(100, 100));
imageButton.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageButton.setPadding(0, 0, 0, 0);
imageButton.setFocusable(false);
} else {
imageButton = (ImageButton) convertView;
}
imageButton.setImageResource(mThumbIds[position]);
return imageButton;
}
// references to images
private Integer[] mThumbIds = { R.drawable.media};
}
您看到了什麼樣的錯誤(請發佈)?作爲快速概述,這看起來是足夠的。 – AedonEtLIRA 2011-05-24 16:30:24
沒有錯誤消息,Listener沒有按預期工作。由於OnItemClickListener綁定到了GridView,所以這是一個初學者自己想的錯誤。如果我喜歡使用ImageButton,OnClickListener必須綁定到每個按鈕(請參見下面)......還是非常感謝! – Marek 2011-05-25 07:41:59