我希望用户多次更改按钮的文本。为此,他长按该按钮。这是代码:
@Override
public void onCreate(Bundle savedInstanceState) {
//blah blah
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setMessage("Nueva Categoria:");
// Seting an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Button esteBoton = (Button) findViewById(R.id.button1);
String newCateg = input.getText().toString();
esteBoton.setText(newCateg);
}
});
Button button = (Button) findViewById(R.id.button1);
button.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
alert.show();
return true;
}
});
}
行。当我在 Eclipse 的设备模拟器中运行此代码时,如果这是我第一次在警报对话框中为按钮 1 输入文本,则没有问题,但如果我第二次尝试输入代码,应用程序将崩溃。我不是Java专家,但我认为这是由“输入”的“最终”属性引起的,一旦确定,我就无法更改它的值。我该如何解决?代码很简单,我想保持这种方式。