2017-04-08 10 views
-1

私はサッカーの試合のスコアをリアルタイムで、または最終結果としてユーザーを更新するアプリケーションを作成しています。 TextViewが更新され、関連するスコアが表示されるためには、少なくとも1つのスコアを入力する必要があります。 if文ので、私は、元の内側に別のif文を持って、私は正しいTextViewを設定できるようにしたいAndroid Studio If文を使用した場合|| &&演算子

if(!(et_current.getText().toString().isEmpty())||(!(et_final.getText().toString().isEmpty())) 
&& (!(et_current2.getText().toString().isEmpty())||(!(et_final2.getText().toString().isEmpty()))){ 
    if(!(et_final.getText().toString().isEmpty())) 
       tv_final.setText(et_final.getText().toString()); 
    else 
       tv_current.setText(et_current.getText().toString()); 

    if(!(et_final2.getText().toString().isEmpty())) 
       tv_final2.setText(et_final2.getText().toString()); 
    else 
       tv_current2.setText(et_current2.getText().toString()); 
} 

:私はEditTextフィールドのペアの少なくとも1次のコードを使用して空にされていないことを確認しています正しいスコアが更新されていることを確認してください。

コードを実行すると、最初のifステートメントを過ぎているようには見えません。正しいフォーマットを使用していますか、またはこれらのチェックを完了するためのより良い方法がありますか?

ありがとうございます! readabilitiesの便宜上

+0

2つのコメント:これらの文字列に 'null'チェックを追加し、角括弧も使用します。 –

+0

'isEmpty()'の代わりに '==" "'を使うと、おそらく何かが解決されます –

+1

@ itay_421 '==" "'は動作しません。代わりに '.equals(" ")'を使用してください。 –

答えて

2

、いくつかの変数が

boolean currentEmpty = et_current.getText().toString().isEmpty(); 
    boolean current2Empty = et_current2.getText().toString().isEmpty(); 
    boolean finalEmpty = et_final.getText().toString().isEmpty(); 
    boolean final2Empty = et_final2.getText().toString().isEmpty(); 

を行く取得し、あなたのコードは非常にきれいにすることができます。要件は、私には全く明らかではないとして、それは完全に正しいかどう

if((!currentEmpty || !finalEmpty) || (!current2Empty || !final2Empty)) { 

     if(finalEmpty) { 
      tv_current.setText(et_current.getText()); 
     } 
     else { 
      tv_final.setText(et_final.getText()); 
     } 

     if(final2Empty) { 
      tv_current2.setText(et_current2.getText()); 
     } 
     else { 
      tv_final2.setText(et_final2.getText()); 
     } 
    } 

ような何かが私はわからないんだけど、少なくとも何が起こっているのか追跡する良いスタートでなければなりません。

関連する問題