關於我創建的Android應用程序:當特定的EditText框爲空時,你如何灰掉「Submit」按鈕?
我有三個需要用數字/字符串填充的EditText框。我有一個提交按鈕,將開始一系列計算。
如果任何框爲空並按下提交,則應用程序崩潰。我試圖用try-catch語句來做到這一點,但它並沒有解決問題。我只是想禁用按鈕,直到三個盒子有數字。我知道有一種方法可以setEnabled(false)
我想?或者,還有更好的方法?這會灰色的按鈕?或者是一個無關的函數setEnabled?
關於我創建的Android應用程序:當特定的EditText框爲空時,你如何灰掉「Submit」按鈕?
我有三個需要用數字/字符串填充的EditText框。我有一個提交按鈕,將開始一系列計算。
如果任何框爲空並按下提交,則應用程序崩潰。我試圖用try-catch語句來做到這一點,但它並沒有解決問題。我只是想禁用按鈕,直到三個盒子有數字。我知道有一種方法可以setEnabled(false)
我想?或者,還有更好的方法?這會灰色的按鈕?或者是一個無關的函數setEnabled?
試試這個解決方案。
EditText edit1;
EditText edit2;
EditText edit3;
View button;
@Override
protected void onCreate(Bundle savedInstanceState) {
// Your initialization code...
TextWatcher watcher = new LocalTextWatcher();
edit1.addTextChangedListener(watcher);
edit2.addTextChangedListener(watcher);
edit3.addTextChangedListener(watcher);
updateButtonState();
}
void updateButtonState() {
boolean enabled = checkEditText(edit1)
&& checkEditText(edit2)
&& checkEditText(edit3);
button.setEnabled(enabled);
}
private boolean checkEditText(EditText edit) {
return Integer.getInteger(edit.getText().toString()) != null;
}
private class LocalTextWatcher implements TextWatcher {
public void afterTextChanged(Editable s) {
updateButtonState();
}
void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
void onTextChanged(CharSequence s, int start, int before, int count) {
}
}
您應該在XML中默認禁用按鈕,以便用戶不會意外按下按鈕。在此之後,您需要查看您的字段並確保提交之前他們都有數據。
你可以做到這一點,或者你可以提交運行一個快速檢查所有的領域,並確保他們都不等於「」。
基本上是這樣的(如果你想忽略隱藏按鈕,並在檢查後只是處理加工)
if (!((t1.getText().toString.compareTo("") == 0) && (t2.getText().toString.compareTo("")==0) ...))
{
Do stuff
}
else
{
Toast message here
}
否則,你可以有一個「守望者」像上面所說的海報。
您也可以使用此檢查
boolean checkEditText(EditText editText) {
return editText.getText().toString().trim().equals("");
}
嗨,我已經嘗試上面的代碼,改變了功能,下面爲它工作給出。
private boolean checkEditText(EditText edit) {
return ((edit.getText().toString()).length() >0);
}
可能重複的[Android:如何啓用我的按鈕,如果EditText不是空?](http://stackoverflow.com/questions/2979441/android-how-to-enable-my-button- back-if-edittext-is-not-empty) – 2011-05-04 18:32:52
包含堆棧跟蹤將幫助我們找出真正的問題。 – Haphazard 2011-05-04 18:33:07