如何根据java中的字符串值更改变量的值(android)

时间:2014-03-09 10:00:27

标签: java android

在我的应用程序中,我想动态地更改变量的值,基于字符串。这是我试过的

public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.btCalculate:

                int column = Integer.parseInt((String) spColumn
                        .getSelectedItem());
                int inch = Integer.parseInt((String) spInch.getSelectedItem());
                int colum_inch = column*inch ;
                int MULTIUPLIER ;

                if (page_number=="FirstPage(Color)Minimum12Maximum80ColumnInch-14500PerColumn/Inch")

                {
                        MULTIUPLIER=20;
                } 
                else if (page_number=="3rd Page Color: 9000") {
                    MULTIUPLIER=9000;

                }
                else {
                        MULTIUPLIER=10;
                }
                if (colum_inch<4) {
                    tvAmount.setText(page_number);

                } else {
                    tvAmount.setText((MULTIUPLIER *colum_inch) + "");
                }

                break;
        }
    }

此处变量 page_number 是存储点击按钮文本的字符串。在我之前的活动中,我有两个按钮,一个按钮文本是“FirstPage(Color)Minimum12Maximum80ColumnInch-14500PerColumn / Inch”另一个“3rd Page Color:9000”。但问题出在我的外面,MULTIPLIER始终设置为“10”。无论我点击了哪个按钮。我该如何解决这个问题。如何根据单击按钮的文本更改该变量(MULTIPLIER)的值。

2 个答案:

答案 0 :(得分:4)

您无法使用==相等运算符比较字符串。 ==测试2个对象是否是同一个对象。

改为使用.equals()

由于string interning,此陈述可能或可能不是,但您无法控制。

page_number=="FirstPage(Color)Minimum12Maximum80ColumnInch-14500PerColumn/Inch"

这将始终有效。

page_number.equals("FirstPage(Color)Minimum12Maximum80ColumnInch-14500PerColumn/Inch")

答案 1 :(得分:2)

使用equals而不是==这是java比较字符串的方式