Trong ListView
Tôi đang sử dụng cả hai setOnItemClickListener()
và setOnItemLongClickListener()
. Khi tôi bấm vào một mục nó hoạt động tốt nhưng khi tôi bấm lâu vào một mục đôi khi cả hai người nghe được bắn cùng một lúc hoặc làm việc cùng một lúc. Tại sao?sử dụng cả setOnItemClickListener và setOnItemLongClickListener cả hai người nghe cùng một lúc hoặc làm việc cùng lúc.Why
/**
* on click of list view item show the run time webview.
*/
mListViewStar.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
isHome = true;
Animation translate1 = AnimationUtils.loadAnimation(Home.this,
R.anim.tran_right);
mRelativeLayout.setVisibility(View.GONE);
mRelativeLayout.startAnimation(translate1);
// mProgressBar.setVisibility(View.VISIBLE);
mProgressDialog = ProgressDialog.show(Home.this, "",
"Loading...");
addWebView(mArrayListJBSelectedUrls.get(arg2)
.getStrSelectedWebsiteUrl().toString(), arg2);
}
});
/**
* on long press delete item from list view
*/
mListViewStar.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
position = arg2;
AlertDialog.Builder mAlert = new AlertDialog.Builder(Home.this);
mAlert.setTitle(getString(R.string.alert));
mAlert.setIcon(R.drawable.logo);
mAlert.setMessage(getString(R.string.delete_item_dialog));
mAlert.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
mDataBaseMethod.open();
Log.i("Delete", ""
+ mArrayListJBSelectedUrls
.get(position)
.getStrSelectedUrlId());
mDataBaseMethod
.deleteWebSites(mArrayListJBSelectedUrls
.get(position)
.getStrSelectedUrlId()
.toString());
mArrayListJBSelectedUrls.remove(position);
starBaseAdapter.notifyDataSetChanged();
mDataBaseMethod.close();
}
});
mAlert.setNegativeButton(getString(R.string.no),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog = mAlert.create();
alertDialog.show();
return true;
}
});
Điều này không xảy ra, bạn có thể đăng một số mã của mình không? Nếu một sự kiện được chuyển tới onItemLongClickListener, nó sẽ không kích hoạt tiêu chuẩn onItemClickListener. – Bobbake4