2017-07-03 174 views
0

我已經創建了一個使用android工作室鏈接到firebase數據庫的業務上載表單,我面臨一個問題,我只能在(名稱=空顯示「請填寫所有字段」)上添加一個約束,但我怎樣才能將其添加到每個其他EditText字段,所以當用戶不填充他們所有的消息顯示。 這裏是代碼添加多個約束

private void addBusiness(){ 

    String name = businame.getText().toString().trim(); 
    String email = busiemail.getText().toString().trim(); 
    String number = businum.getText().toString().trim(); 
    String address = busiadd.getText().toString().trim(); 
    String info = busiinfo.getText().toString().trim(); 
    String type = spinnerType.getSelectedItem().toString(); 

    if (!TextUtils.isEmpty(name)) { 
     String id= databaseBusiness.push().getKey(); 
     Business business = new Business(id, name, email, number, address, info, type); 
     databaseBusiness.child(id).setValue(business); 
     Toast.makeText(this,"Upload Done", Toast.LENGTH_LONG).show(); 
    } else { 
     Toast.makeText(this,"Please Fill All Fields",Toast.LENGTH_LONG).show(); 
    } 
} 
+0

使用'if,else if' block –

+0

檢查下面的答案 –

回答

1

一個簡單的解決辦法是這樣的:

Map<String, String> userInputByTag = new HashMap<>(); 
userInputByTag.put("name", businame.getText().toString().trim()); 
userInputByTag.put("email", busiemail.getText().toString().trim()); 
... 

,現在你可以迭代的映射條目。如果您發現地圖爲空,您可以張貼消息(使用相應的地圖鍵)。不漂亮,但絕對好於

if (!TextUtils.isEmpty(name)) { 
    ... 
else if(!TextUtils.isEmpty(email)) { 
    ... 

換句話說:直向前,但醜陋的解決方案將是這樣的if/else,如果/ ...語句級聯。

除此之外 - 我很確定Android有一些框架支持字段驗證。你應該在那裏做一些研究,而不是重新發明輪子。開始閱讀heretherethat

+0

謝謝,我會在那裏做一些研究。 –

+0

不客氣。感謝您的快速反饋。 – GhostCat

1

方便於用戶:

我會使用更方便的方式爲用戶和顯示預先直接在的EditText一個錯誤,如果是空的,以在每一個 EditText使用TextWatcher

TextWatcher

如果檢測到的EditText是空的,即在onTextChanged() 你可以調用editText.setError(yourString);

我推薦使用AppCompatEditTextTextInputLayout包圍。

但是,在提交之前,您必須再次爲每個成員執行此操作。

要麼你有專門的錯誤更加用戶友好的方式,如:

if (TextUtils.isEmpty(name)) { 

//dedicated error message 
return; 
} 

if (TextUtils.isEmpty(email)) { 
//dedicated error message 
return; 
} 

//and so on 

(...) 
//if every field holds the correct information 
databaseBusiness.child(id).setValue(business); 
(...) 

,或者你可以只檢查每一個成員在一個if語句和 顯示像你這樣的一般錯誤消息已經有了。

+1

謝謝,會做。 –