直接上代码了..public class ImageAdater extends BaseAdapter{


private Context myContext;

private String[] a = {"1","2"};

private Button the_ballView; public ImageAdater(Context myContext)
{
this.myContext = myContext;;
} public int getCount() {
// TODO Auto-generated method stub
return a.length;
} public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
} public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
the_ballView = new Button(myContext);
the_ballView.setBackgroundResource(R.drawable.ball3);
the_ballView.setText(a[position]);
the_ballView.setWidth(30);
the_ballView.setHeight(30);

return the_ballView;
}
}
我在使用GridView的时候用了上面写的ImageAdater,gridView.setAdapter(myImageViewAdapter);
gridView.setOnItemClickListener(new GridView.OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Log.d("############","1111");
}        
        });监听该gridView的OnItemClick事件就无响应了。

解决方案 »

  1.   

    gridview的每个孩子是button,是不行的,你换成普通的view试一下,我感觉是button拦截了点击事件,你也可以试下给button设置监听器,button肯定可以得到点击事件。
      

  2.   

    gridview中有节点是xxxbutton,点击事件会被xxxbutton拦截了,所以OnItemClickListener不会被callback。
      

  3.   

    好文,checkbox控件也会拦截点击事件
      

  4.   

    2、7楼说得对,解决办法就是给button设置监听器
      

  5.   

    GridView设置android:descendantFocusability="blocksDescendants"
      

  6.   

    这个问题android普遍存在  就是一个焦点占据的问题  你直接把button换掉 换成ImageView最简单了
    附上新手交流群:今天刚刚创建254202293