onClickListener
との両方を実装しようとすると、次のエラーが発生しonLongClickListener
ますRelativeLayout
。
10-19 17:49:31.400: E/AndroidRuntime(30886): FATAL EXCEPTION: main
10-19 17:49:31.400: E/AndroidRuntime(30886): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
これはコードの一部です:
RelativeLayout meals_layout = (RelativeLayout) view
.findViewById(R.id.meals);
meals_layout.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(
JournalActivity.this);
builder.setTitle(R.string.meal_delete);
builder.setView(clickView);
builder.setPositiveButton(R.string.string_delete,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton(R.string.string_cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// Do nothing
dialog.dismiss();
}
});
builder.create().show();
return false;
}
});
meals_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(
JournalActivity.this);
builder.setTitle(R.string.meal_edit); // al que hacerlo bonito
builder.setView(clickView);
builder.setPositiveButton(R.string.string_edit,
new DialogInterface.OnClickListener() {
}
});
builder.setNegativeButton(R.string.string_cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// Do nothing
dialog.dismiss();
}
});
builder.create().show();
}
});
アクティビティを初めて開いたときは、何度でもロングクリックできます。しかし、他のボタン (ここで説明されているものだけでなく) をクリックすると、再度ロングクリックを試みると、アプリケーションがクラッシュします。
私は本当にあなたの助けに感謝します. ありがとう :)