单选按钮设置如果

时间:2011-11-11 19:32:46

标签: android

我在notepadv3教程中实现了radiobuttongroup。 如果字符串输出是“Fehltag”或“Verspaetung”,我想设置一个radiobutton。 它不是完整的源代码。

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <RadioButton
        android:id="@+id/rbtnVerspaetung"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/rbtnVerspätung" />

    <RadioButton
        android:id="@+id/rbtnFehltag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/rbtnFehltag" />
</RadioGroup>

的java:

    private RadioButton rbtnFehltag;
    private RadioButton rbtnVerspaetung;
    private void populateFields() {

    if (mRowId != null) {
        Cursor note = mDbHelper.fetchNote(mRowId);
        startManagingCursor(note);
        mTitleText.setText(note.getString(
                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
        mBodyText.setText(note.getString(
                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
        mFehlzeitText.setText(note.getString(
                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_Time)));
        mTest.setText(note.getString(
                note.getColumnIndexOrThrow(NotesDbAdapter.KEY_Test)));

        String ausgabe;
        //returns Verspaetung or Fehltag
        ausgabe = note.getString(note.getColumnIndexOrThrow(NotesDbAdapter.KEY_Test));

        rbtnFehltag.setChecked(ausgabe == "Verspaetung"); //it doesn't work
        //rbtnFehltag.setChecked(true); //this is working but it doesn't peform the task

    }

1 个答案:

答案 0 :(得分:1)

我不确定我明白你在问什么。但我认为你的问题在于你不能在字符串上使用==运算符。我相信==运算符会比较内存中的字符串位置,而不是字符串的内容。我想如果你用你的代码替换代码的尾端:

String ausgabe;
//returns    Fehltag     or     Verspaetung
ausgabe = note.getString(note.getColumnIndexOrThrow(NotesDbAdapter.KEY_Test));
rbtnFehltag = (RadioButton)findViewById(R.id.rbtnFehltag);
rbtnVerspaetung = (RadioButton)findViewById(R.id.rbtnVerspaetung);
rbtnFehltag.setChecked(ausgabe.equals("Fehltag")); 
rbtnVerspaetung.setChecked(ausgabe.equals("Verspaetung"));

字符串实际上是Java中的对象。通常,在比较基元时只应使用==运算符。 ==将比较对象的内存地址。当您需要了解身份而非平等时,这非常有用。但我不认为这就是你要去的地方。

祝你好运。