Java 活动中的更新模式,Android Studio
我试图在活动中创建一个菜单按钮,让用户更新内容。在第二次单击它之后,它应该离开更新模式 在我的程序中发生的情况是,在关闭更新模式的情况下,我仍然在单击diagnosticCodeView时听到“声音”(我认为这是因为onClick方法仍然被覆盖)。有没有办法消除这种声音Java 活动中的更新模式,Android Studio,java,android,android-studio,Java,Android,Android Studio,我试图在活动中创建一个菜单按钮,让用户更新内容。在第二次单击它之后,它应该离开更新模式 在我的程序中发生的情况是,在关闭更新模式的情况下,我仍然在单击diagnosticCodeView时听到“声音”(我认为这是因为onClick方法仍然被覆盖)。有没有办法消除这种声音 TextView diagnosticCodeView; AlertDialog dialog; EditText editText; @Override public boolean
TextView diagnosticCodeView;
AlertDialog dialog;
EditText editText;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.updateReport:
if(!isEditing) {
Snackbar.make(diagnosticCodeView, "Editing mode on", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
diagnosticCodeView = findViewById(R.id.diagnosticCodeView);
dialog = new AlertDialog.Builder(this).create();
editText = new EditText(this);
dialog.setTitle(" Edit text ");
dialog.setView(editText);
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Save text", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diagnosticCodeView.setText(editText.getText());
}
});
diagnosticCodeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setText(diagnosticCodeView.getText());
dialog.show();
}
});
isEditing = true;
}
else {
Snackbar.make(diagnosticCodeView, "Editing mode off", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
isEditing = false;
}
return true;
...
将侦听器设置为null就足够了:
else {
Snackbar.make(diagnosticCodeView, "Editing mode off",
Snackbar.LENGTH_LONG).setAction("Action", null).show();
diagnosticCodeView.setOnClickListener(null);
isEditing = false;
}