2017-07-04 9 views
-1

2つのラジオボタンのうちのもう1つが選択されている場合、グループ内の1つのラジオボタン(if文)が選択されている場合、何が起こるかを判断するためにラジオグループ上で「存在チェック」を実行しようとしています)またはどちらも選択されていない場合(else文)。これは、次のようなコードは次のとおりです。だから、基本的に、これは何をすべきかIf ... Elseステートメントは常に "else"に転送されます。

if (rdbAM.isSelected()) { 
     strTime = rdbAM.getText().toString(); 
    } else if(rdbPM.isSelected()){ 
     strTime = rdbPM.getText().toString(); 
    } else { 
     AlertDialog.Builder WrongDateFormat = new AlertDialog.Builder(this); 
     WrongDateFormat.setMessage("Please Select AM or PM"); 
     WrongDateFormat.setNeutralButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
     AlertDialog alertWrongDateFormat = WrongDateFormat.create(); 
     alertWrongDateFormat.show(); 
     return; 
    } 

をいずれかである、ラジオグループ内の選択されたラジオボタンのテキストがあるものは何でも「strTime」と呼ばれる変数を設定するか、エラーメッセージを表示しますどちらも選択されていない場合代わりに関わらず常にラジオボタンのいずれかが選択されているか否かと、このエラーメッセージが表示されます。

enter image description here

(あなたは、上記のラジオボタンが選択されているが、エラーがまだ表示されている「AM」見ることができるように) 。

これがなぜそうであるかについてのご意見は、高く評価されます。私はAndroid開発には比較的新しいので、明らかに明らかなことがあれば謝罪しますが、数日間はこれを頭に入れようとしています!それ以上のコードを見たいと思ったら、私に知らせてください。私はそれを提供して喜んでいますが、できるだけプライベートなものにしておきたいので、必要でなければ最初の投稿にすべてを載せたくありません。前もって感謝します。

+0

あなたのコードの多くを投稿してください。特に 'rdbAM 'がどこから来るか。 – dipdipdip

+1

私は、Javaの命名規則に従ってください ' – 0xDEADC0DE

+0

)使用する正しい関数は'にisChecked(あると信じています。 –

答えて

1

文書によれば、RadioButtonは、方法isChecked()を提供するCompoundButtonを拡張しています。しかし、拡張クラスViewisSelected()メソッドとの違いが混乱する可能性はほとんどありません。

次の操作を行い、それが動作するはずです:

rdbAM.isChecked(); 
1

​​の代わりにisChecked()を使用してください。

0

RadioButtoncheckedまたはuncheckedのいずれかになります、二状態ボタンです。この複合ボタンの場合は、メソッドisChecked()を使用して現在の状態を知る必要があります。

documentationを参照してください。

は、以下のようにコードを更新します。

if (rdbAM.isChecked()) { 
     strTime = rdbAM.getText().toString(); 
    } else if(rdbPM.isChecked()){ 
     strTime = rdbPM.getText().toString(); 
    } else { 
     AlertDialog.Builder WrongDateFormat = new AlertDialog.Builder(this); 
     WrongDateFormat.setMessage("Please Select AM or PM"); 
     WrongDateFormat.setNeutralButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
     AlertDialog alertWrongDateFormat = WrongDateFormat.create(); 
     alertWrongDateFormat.show(); 
     return; 
    } 
関連する問題