【问题标题】:setonitemclicklistener not working for gridviewsetonitemclicklistener 不适用于 gridview
【发布时间】:2013-10-10 18:08:43
【问题描述】:

这是我的代码,我没有收到来自 gridview setOnClickListener 的任何响应。 请帮帮我。

setContentView(R.layout.myfav);
gView = (GridView) findViewById(R.id.grid);
PackageManager pm = this.getPackageManager();
    context = MyFav.this;
    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    list = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
    gView.setAdapter(new MyAdapter());
    // save.setOnClickListener(this);
    // cancel.setOnClickListener(this);
    gView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            Log.e("inside click", "" + arg2);
            Toast.makeText(getApplicationContext(), "Hello" + arg2,
                    Toast.LENGTH_SHORT).show();
        }
    });

这是我的网格视图

<GridView
    android:id="@+id/grid"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:layout_centerHorizontal="true"
    android:numColumns="3"
    android:stretchMode="columnWidth" >
</GridView>

【问题讨论】:

  • 添加适配器后您的网格视图是否显示完美??
  • 是的。所有项目都正确显示
  • 那么你在这里遇到什么问题,我看到这里都很好。
  • 点击项目后日志信息是否显示?
  • 确保网格项的布局没有任何clickable 属性,尤其是在根中。此外,您的网格项目中是否有任何“可点击”项目和/或您是否在适配器中设置任何其他点击侦听器?可能最好分享一些您的网格项目布局和适配器代码。

标签: android gridview onitemclicklistener


【解决方案1】:

可能是您的 GridView 中的某些项目正在窃取焦点。尝试将这些属性添加到网格内的任何元素:

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

【讨论】:

  • 这是我需要的答案。还有一个疑问。我在自定义网格视图中有复选框如何获取其中选中的元素?
  • 我不明白。您需要确定是否选中了网格中的复选框?
  • 通过您的视图初始化复选框,并通过 checkbox.oncheckedchangelistener 来检查 isChecked 还是不检查..
  • 我在 gridview 中有复选框的项目。
  • 你太棒了!谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多