2017-07-03 11 views
0

firebaseデータベースにリンクされたアンドロイドスタジオを使用してビジネスアップロードフォームを作成しましたが、(名前=空のディスプレイに「すべてのフィールドを記入してください」)しかし、これを他のすべてのEditTextフィールドにどのように追加すればよいのでしょうか?ユーザーがメッセージを入力しないと、すべてのメッセージが表示されます。複数の制約を追加する

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

そして今、することができます反復マップエントリ:ここ は簡単な解決策は、このようになります。コード

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'ブロックを使用してください。 –

+0

以下を確認してください –

答えて

1

です。 の値がで空である場合は、対応するマップキーを使用してメッセージを表示できます。美しい、間違いなくより良いつまり

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

に比べてではない:まっすぐ進むが、醜いソリューションなどの場合/他のif/...文のカスケードだろう。

それ以外にも、Androidにはフィールド検証のためのフレームワークがいくつかサポートされていると確信しています。ホイールを再発明する代わりに、そこでいくつかの研究をする必要があります。 hereまたはthereまたはthatを開始してください。

ユーザにとって便利
+0

ありがとう、私はそこでいくつかの研究を行います。 –

+0

ようこそ。迅速なフィードバックをありがとう。 – GhostCat

1

私は、ユーザーのために、より便利な方法を使用して、それがすべての EditTextTextWatcherを使用して、空の場合は、のEditTextに直接エラーを事前に表示していました。

TextWatcher

あなたはのEditTextがonTextChanged() で、すなわち空であることを検出した場合には、editText.setError(yourString);を呼び出すことができます。

囲まれたTextInputLayoutのあるAppCompatEditTextを使用することをおすすめします。

しかし、提出する前に、すべてのメンバーにこれをもう一度行う必要があります。

あなたのような、専用のエラーが発生した、よりユーザーフレンドリーなアプローチを持って次のいずれか

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にすべてのメンバをチェックし あなたが既に持っているように一般的なエラーメッセージを表示することができます。

+1

ありがとうございます。 –

関連する問題