是否可以在空网格视图或网格视图的空白处处理longclick?我尝试使用下面显示的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridView1);
gridview.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(MainActivity.this, "does it works?", Toast.LENGTH_SHORT).show();
return false;
}
});
}
但不幸的是,它不起作用。 有人可以告诉我,我怎么能在空的gridview上处理这个事件? 感谢
我还附上了我的xml文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="-5dip"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:longClickable="true"
android:layout_weight="1"
android:numColumns="3" >
</GridView>
答案 0 :(得分:0)
GridView包含从适配器创建的视图。如果要添加LongClickListener,则应使用OnItemLongClickListener。我不认为在GridView本身使用LongClickListener有任何用处。
答案 1 :(得分:0)
视图为NULL,您可以在哪里设置XXXListener?所以它不能。
答案 2 :(得分:0)
让gridview听取“OnTouchListener
”,并使用GestureDetector
来处理onTouch
事件。最后在“onLongPress
”方法中执行您想要的操作。
此外,为了避免onLongPress
和onItemLongclick
之间发生冲突,我们可以检查是点击的项目还是空的地方longPressed。
int itemPosition = mGridView.pointToPosition((int)event.getX(), (int)event.getY());
,如果itemPosition == -1,则表示空位。