Android 单击鼠标右键可在gridview中绘制项目(已编辑)
如何执行右可绘制的Onclick功能? 我有一个gridview项目列表,其中我为每个项目设置了一个右可绘制项,这样当用户在editText中输入某个内容时,右可绘制项将显示在背景中,并且可绘制项是删除图标,所以我只想对该可绘制项执行onClick listener,这样当用户点击该删除可绘制项时,就可以执行操作。我编写了以下代码,但它不起作用Android 单击鼠标右键可在gridview中绘制项目(已编辑),android,onclicklistener,android-drawable,Android,Onclicklistener,Android Drawable,如何执行右可绘制的Onclick功能? 我有一个gridview项目列表,其中我为每个项目设置了一个右可绘制项,这样当用户在editText中输入某个内容时,右可绘制项将显示在背景中,并且可绘制项是删除图标,所以我只想对该可绘制项执行onClick listener,这样当用户点击该删除可绘制项时,就可以执行操作。我编写了以下代码,但它不起作用 keywordslist.setOnTouchListener(new OnTouchListener() { @Override pu
keywordslist.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(final View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
if(event.getRawX() >= (keywordslist.getRight() - keywordslist.getPaddingRight())) {
new AlertDialog.Builder(context)
.setMessage("Remove " + ((TextView) v).getText().toString() + "?")
.setNeutralButton("No", null)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
DBkeyword dbkey = new DBkeyword(context);
SQLiteDatabase dbw = dbkey.getWritableDatabase();
String deleteKeyword = "delete from " + "screenedkeywords" + " where " + "keywords" + " = \"" + ((TextView) v).getText().toString() + "\"";
dbw.execSQL(deleteKeyword);
dbw.close();
DisplayKeywords();
}
});
return true;
}
}
return false;
}
});
您必须通知适配器数据已更改
customGridAdapter.notifyDataSetChanged();
我不是百分之百确定,但是否应该有一个
ArrayAdapter.getItemCount()
可能您没有将返回值从0更改为data.size()。正如我所说,数据正在数据库中添加,但它没有显示在屏幕上,notifyDataSetChanged与此无关。首先,如果您的数据库已更新,那么您还必须更新screenedKeyWords arraylist,因为数据库中的任何项目都已更改。然后,如果arraylist已更改,则必须通知适配器。第二件事..阅读关于NotifyDataSetChange的内容,它的作用是什么?先生,让我试试这个