我希望用戶多次更改他想要的按鈕文本。要做到這一點,他只需點擊該按鈕即可。這是代碼:在提示框中輸入文本
@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的專家,但我認爲這是由於「輸入」的「最終」屬性造成的,一旦確定後我無法改變它的值。 我該如何解決它?代碼很簡單,我想以這種方式保留它。
@Grishu代碼是相似的,謝謝你們。當我嘗試你的建議時,Eclipse在運行時吐露了這一點:E/AndroidRuntime(531):致命異常:主要java.lang.NullPointerException異常 com.android.internal.app.AlertController $ AlertParams。(AlertController.java:742) at android.app.AlertDialog $ Builder。 (AlertDialog.java:273) 在com.stufflist.ListStuff $ 1.onLongClick(ListStuff.java:82) 在android.view.View.performLongClick(View.java:2503) 在android.widget.TextView.performLongClick (TextView.java:7640) at android.view.View $ CheckForLongPress.run(View.java:9056) –
JoeCoolman
2013-03-05 17:19:26
at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage (Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative (Native Method)at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method) – JoeCoolman 2013-03-05 17:20:01
對不起,你們的建議非常好。我在自己的代碼中犯了一個錯誤。一切都是現在!謝謝。 – JoeCoolman 2013-03-06 03:15:52