Android-PullParser返回不同的字符串类型?

时间:2013-01-25 23:09:39

标签: android string if-statement xmlpullparser

这是我的代码:

String Attr = parser.getAttributeValue(null, "name");
            String Text = parser.getText();
            if (Attr == "id"){
                parser.nextTag();
            }else if(Attr == "Lektion"){
                vocable.setUnit(Text);
                parser.nextTag();
            }else if(Attr == "Russisch"){
                vocable.setRussian(Text);
                parser.nextTag();
            }else if(Attr == "Umschrift"){
                vocable.setTranscript(Text);
                parser.nextTag();
            }else if(Attr == "Einzelwort"){
                int tf = Integer.parseInt(Text);
                Boolean bool = null;
                    switch (tf){
                    case 0:
                        bool= false;
                        break;
                    case 1:
                        bool= true;
                        break;
                    }
                vocable.setSingleWord(bool);
                parser.nextTag();
            }else if(Attr == "Deutsch"){
                vocable.setGerman(Text);
                parser.nextTag();
            }

我的xml文件的结构:

    <database name="russisch">
    <table name="vokabel">
        <column name="Lektion">1</column>
        <column name="id">1</column>
        <column name="Russisch">Как дела?</column>
        <column name="Umschrift">kak dilá</column>
        <column name="Deutsch">Wie geht’s?</column>
        <column name="Einzelwort">0</column>
    </table>
    <table name="vokabel">
        <column name="id">2</column>
        <column name="Lektion">1</column>
        <column name="Russisch">Очень хорошо!</column>
        <column name="Umschrift">ótschin charaschó</column>
        <column name="Deutsch">Sehr gut!</column>
        <column name="Einzelwort">0</column>
    </table>
</database>

如果我试图将属性值与给定的值进行比较,它永远不会返回true,因此if语句永远不会被执行。我试图手动设置弹簧,它工作。因此,我只需要格式化返回的字符串,但我不知道如何。我真的希望有人可以提供帮助

1 个答案:

答案 0 :(得分:1)

您无法将字符串与等号运算符进行比较:

Attr == "Einzelwort"

因为String是一个对象。 equals运算符测试两个对象是否是同一个对象,因此您将Attr与不是同一对象的“Einzelwort”进行比较。

相反,使用equals()方法比较String的字符串值。

Attr.equals("Einzelwort")