我有一个由适配器填充的Gridview,它返回LinearLayouts,每个都包含一个ImageButton和TextView。
在适配器中,我将onClick和onLongClick事件绑定到ImageButton。
我正在尝试将OnItemClickListener绑定到网格视图,但是我不知道为什么onItemclicked从来没有启动。
这是我第六个小时没吃任何东西了。
顺便说一句,OnItemSelectListener在网格上工作得很好。
我正在检查是否有一些代码意外地处理了onItemClicked,但仍然无法捕获。
我需要帮手。
gridView = (GridView) layoutInflater.inflate(R.layout.gridview, null);
gridView.setOnItemClickListener(new ItemClickListener());
.
.
.
//inner handler class
class ItemClickListener implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(mainActivity.getApplicationContext(),view + " clicked at pos " +
i,Toast.LENGTH_SHORT).show();
}
}发布于 2011-11-21 15:33:57
不要在网格中使用可单击对象。在这种情况下,安卓无法处理GridView的点击事件。
取而代之的是,使用一些东西来显示类似的用户界面视图。然后处理该对象的单击操作。
请勿:将Button放在GridView中以执行一些单击操作。
Do:将ImageView替换为ImageButton,并处理ImageView的点击事件。
发布于 2014-11-21 16:26:25
如果希望使用Button或ImageButton,则需要在小部件的xml代码中编写这些属性。
android:focusable="false"
android:focusableInTouchMode="false"这对我很管用。
但在GridView中,尽量避免使用这些小部件。您可以使用任何其他小部件来代替这些小部件(如ImageView或任何其他小部件)。
发布于 2012-12-29 04:52:19
还要确保您的ListAdpter返回true
整数公共布尔值isEnabled(
_position)
您想要单击的位置。
https://stackoverflow.com/questions/8183609
复制相似问题