ユーザーがボタンのテキストを何度も変更したい。そのために、彼はそのボタンを長押しします。これはコードです:
@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;
}
});
}
Ok。このコードを Eclipse のデバイス シミュレータで実行すると、アラート ダイアログのボタン 1 に最初にテキストを入力する場合は問題ありませんが、2 回目にコードを入力しようとするとアプリケーションがクラッシュします。私はJavaの専門家ではありませんが、これは「入力」の「最終」属性によるものだと思います。一度決定した後、その値を変更することはできません。どうすれば修正できますか?コードはシンプルなので、そのままにしておきたいと思います。