永远不会调用GridView onItemClickListener

Eug*_*ene 5 java android android-gridview

我有一个GridView自定义View,它是一个Button和一个TextView.我定义了setOnItemClickListener它,但看起来它从未被调用,请参阅下面的代码和平.

gridview = (GridView) findViewById(R.id.main_gridview);
gridview.setAdapter(new GridAdapter(this));

gridview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) {
        Toast.makeText(getApplicationContext(), "gadsfadsf", 
            Toast.LENGTH_SHORT).show();
        Log.d("Main", "onItemClick");
    }
});
Run Code Online (Sandbox Code Playgroud)

AZ1*_*Z13 19

明显的答案是一种黑客攻击.而不是设置onclicklistener到按钮只是确保ButtonView和TextView具有以下属性:

android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

  • 还有android:focusable ="false" (7认同)

cod*_*ser 3

我遇到过同样的问题。虽然我还没有弄清楚为什么它永远不会被调用,但我可以提出一个解决方法。

不要在 GridView 上设置 onClickListener,而是在 GridAdapter 内的 getView() 方法内的 Button 本身上设置它。

这对我有用!