0

aの aが押されたonCheckedChangedかどうかを教えてくれる があります。RadioButtonRadioGroup

RadioGroup rGroup = (RadioGroup)findViewById(R.id.rdgroup);
        // This will get the radiobutton in the radiogroup that is checked
        RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(rGroup.getCheckedRadioButtonId());

        rGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
        {
            public void onCheckedChanged(RadioGroup rGroup, int checkedId)
            {
                // This will get the radiobutton that has changed in its check state
                RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(checkedId);
                // This puts the value (true/false) into the variable
                boolean isChecked = checkedRadioButton.isChecked();
                // If the radiobutton that has changed in check state is now checked...
                if (isChecked)
                {
                    String tmp = checkedRadioButton.getText().toString();
                    //Toast t = Toast.makeText(NeuesKind.this, checkedRadioButton.getText(), Toast.LENGTH_SHORT);
                    //
                   // t.show();
                    if(tmp == "Männlich"){
                        geschlecht = "männlich";
                    }
                    if(tmp == "Weiblich"){
                        geschlecht = "weiblich";
                    }

                    Toast t1 = Toast.makeText(NeuesKind.this, geschlecht, Toast.LENGTH_SHORT);
                    t1.show();
//                  Toast t = Toast.makeText(NeuesKind.this, checkedRadioButton.getText(), Toast.LENGTH_SHORT);
//                  t.show();
                }
            }
        });

現在アウトコメントされている最初のものを使用するとToast、tmp が「Männlich」または「Weiblich」であることがわかります。2番目を使用すると、空であるToast t1ことがわかります。geschlechtgeschlecht の宣言は、クラスでも必要なので、クラスの一番上にありonCreateます。

geschlecht が tmp の値を取らないのはなぜですか?

4

3 に答える 3

1

String の内容をコードと比較するのではなく、オブジェクトを比較するequalsequalsIgnoreCase、次のように使用します。

if ("Männlich".equalsIgnoreCase(tmp)) {
    geschlecht = "männlich";
}
if ("Weiblich".equalsIgnoreCase(tmp)) {
    geschlecht = "weiblich";
}
于 2013-05-06T08:54:41.727 に答える
1

使用しtmp.compareTo ( "Mannlich" )ないtmp ==

于 2013-05-06T08:55:11.760 に答える