2017-03-27 22 views
0

2つのEditTextフィールドがあります。2つのEditTextエントリがあります.1つは名前用、もう1つは年齢用です.2番目のTextUtilsのエラーが表示されます。

 EditText nameField = (EditText) findViewById(R.id.nameOfCustomer); 
    String name = nameField.getText().toString(); 

私はアプリ内の2つのEditTextフィールドを持っている:最初のEditTextは、私の場合には、文字列を受け入れるように名前を設定しています。最初のEditTextは、私の場合には、文字列を受け入れるように名前を設定します

EditText nameField = (EditText) findViewById(R.id.nameOfCustomer); 
    String name = nameField.getText().toString(); 

私は、ヌルをチェックするために最初のEditTextのための次のJavaコードを追加しました:

if(TextUtils.isEmpty(name)) 
    { 
     Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show(); 
     return; 
    } 

これだけで正常に動作しますTextUtils.isEmptyがtrueの場合、最初のEditTextフィールドに入力がない場合、トーストが表示されます。

EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient); 
    String name2 = nameField2.getText().toString(); 
:私が持っていると思いますので、inputTypeは=「数」のユーザーは、私が第二のEditTextのために、この同じコードを重複しているだけ

番号を入力します。

第二のEditTextがアンドロイドに設定された入力タイプを持っています

と私は整数に解析する前に、私がヌルのためにそれをチェックします。

if(TextUtils.isEmpty(name2)){ 
     Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show(); 
     return; 
    } 

    int val = Integer.parseInt(nameField2.getText().toString()); 

しかし、それはヌル状態を識別し、クラッシュするアプリケーションが発生していません。私は何かを見つけることができませんでした。

大変ありがとうございます。

私は、ヌルをチェックするための最初のEditTextのための次のJavaコードを追加しました:

if(TextUtils.isEmpty(name)) { 
     Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show(); 
     return; 
    } 

これはうまく動作し、TextUtils.isEmptyがtrueのときにエントリが行われていない場合には、トーストを表示させます最初のEditTextフィールドに入力します。

EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient); 
    String name2 = nameField2.getText().toString(); 
:私が持っていると思いますので、inputTypeは=「数」のユーザーは、私が第二のEditTextのために、この同じコードを重複しているだけ

番号を入力します。

第二のEditTextがアンドロイドに設定された入力タイプを持っています

と私は整数に解析する前に、私がヌルのためにそれをチェックします。

if(TextUtils.isEmpty(name2)){ 
     Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show(); 
     return; 
    } 

    int val = Integer.parseInt(nameField2.getText().toString()); 

しかし、それはヌル状態を識別し、クラッシュするアプリケーションが発生していません。私は何かを見つけることができませんでした。どんな提案も大歓迎です!代わりに以下の

+1

あなたの投稿にクラッシュのログを追加してください。あなたはデバッグを試みて、name2の値をチェックしましたか? – pablobu

+0

私はそれをどうやって行うのか分からないと言って恥ずかしいです。私はそれを把握し、私ができるならそれを投稿しようとします。ご協力いただきありがとうございます。とても有難い ! –

答えて

0

私はアンドロイドの持っていたことを発見:代わりにアンドロイドの第二のEditTextのテキストを:ヒントをヌルチェッカーが代わりに私がヒントだと思った何のテキストを見ていたので、当たり前。私はテストモードでテキストを削除し、コードがうまくいきましたので、私はこれを見つけたので、両方のEditTextフィールドのコードを比較して戻ってきて、確かに2番目のテキストはandroid:textの代わりにアンドロイド:textでした。私を助けてくれたすべての人に感謝します。私が述べたように、私は初心者ですが、すぐに学びます。もう一度全員に感謝します! Tom

0

利用コード:

if(name.equals("")){ 

} 

または

if(name.length()==0){ 

} 

はそれが正常に動作します願っています。

+1

素晴らしいですが、これはうまく動作し、私が探していた簡単な答えです。どうもありがとう !!!! –

+0

あなたの歓迎。@ tom –

+0

これは奇妙です、それは昨日働いて、今日それをチェックしたときにもう機能しません、なぜ私は本当に最初のEditTextのために働くのは不思議です。どちらもテキスト入力であり、2番目の入力は数字入力に制限されていますが、これらの数字は後でインターガーに変換されません。最初のEditTextのnullコードのコードをコメントアウトして、テキストを入力せずにアプリケーションを実行すると、アプリケーションはクラッシュしませんが、2番目のEditTextでは機能しません。 2番目のEditTextに何も入力しなければ、アプリはnullトラップの有無にかかわらずクラッシュします。提案?ありがとう! –

0

私はあなたが以下のコードを探していると思います。エラーログを提供する場合は、より明確になります。ほとんどの場合、フォームの検証が失敗した後でも、フォームを送信している可能性があります。

public class OPDForm extends AppCompatActivity implements View.OnClickListener { 
    private EditText nameOfCustomer; 
    private EditText ageOfPatient; 
    private Button addButton; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_opd_form); 
     nameOfCustomer = (EditText) findViewById(R.id.nameOfCustomer); 
     ageOfPatient = (EditText) findViewById(R.id.ageOfPatient); 
     addButton = (Button) findViewById(R.id.addButton); 
     addButton.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     if (view == addButton) { 
      addButton.requestFocus(); 
      if(isValidForm()) { 
       //Submit Form Here 
       //Most likely you are invoking below line even after validation fails, but now we are it will be called only when your form validation will get success 
       int val = Integer.parseInt(ageOfPatient.getText().toString()); 
      } 
     } 
    } 

    private boolean isValidForm() { 
     if(TextUtils.isEmpty(nameOfCustomer.getText().toString())) { 
      Toast.makeText(this, "Please Enter Name ", Toast.LENGTH_LONG).show(); 
      return false; 
     } else if(TextUtils.isEmpty(ageOfPatient.getText().toString())) { 
      Toast.makeText(this, "Please Enter Patient Age ", Toast.LENGTH_LONG).show(); 
      return false; 
     } 
     return true; 
    } 
} 
+0

あなたの信じられないくせになった解決策を共有していただきありがとうございます。私はそれを見て、私がそれから学ぶことができるものを見ます。私はあなたの助けが評価されるので、ランク初心者です! –

+0

大歓迎@Tom !! –

関連する問題