【问题标题】:GridView on item click listener项目单击侦听器上的 GridView
【发布时间】:2013-09-20 13:59:12
【问题描述】:
        gridView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {
            Toast.makeText(ScenesActivity.this, position + "#Selected",
                    Toast.LENGTH_SHORT).show();

            final Intent intent = new Intent(getApplicationContext(), ScenesDetailActivity.class);
            intent.putExtra(TestConstants.SELCTED_SCENE_KEY, position);
            startActivity(intent);
        }

    });

TestConstants.java

public interface TestConstants {

 String SELCTED_SCENE_KEY="SELCTED_SCENE"; }

我想在点击选择的场景键后获取 ScenesDetailActivity。上面的代码似乎没有按预期工作。有人可以帮我解决它吗?非常感谢!西蒙尼德斯

【问题讨论】:

  • 什么不起作用?下一个视图不显示?您是否正在发送您需要详细说明的数据?你只是发送一个索引位置。
  • 如果 onItemClick 没有被触发,请发布您的 gridView 项目 xml 文件,如果您遇到任何异常,请发布 logcat 的详细信息
  • 请展开您的问题
  • 点击 GridView 中的第一项后,我想查看 ScenesDetailActivity。现在,当我单击项目时,什么也没有发生。

标签: java android gridview


【解决方案1】:

gridView 有自定义布局吗?

如果是,请转到自定义布局 xml 文件并更改这些属性

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

【讨论】:

    【解决方案2】:

    这是最简洁的方法:从适配器中每个按钮的单击侦听器中调用 GridView 上的 performItemClick()。这样你仍然可以像平常一样使用 GridView 的 onItemClickListener。

    // in your ListAdapter
    @Override
    public View getView(final int position, final View convertView, final ViewGroup parent) {
    
        // set btn to be your item's view
        ...
    
        btn.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                ((GridView) parent).performItemClick(v, position, 0);
            }
        });
    }
    

    来自http://www.migapro.com/click-events-listview-gridview/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多