-2

我有两个TextViews。其中一个是setText(String s)从一个对象作为文本参数(),ArrayList另一个是一些计算的结果。

有趣的是,第一个得到他的文本,第二个是空的。

任何想法为什么?

先感谢您 :)

最好的问候,迪米塔尔·格奥尔基耶夫!

这是我的代码:

 @Override
public View getView(int index, View view, final ViewGroup parent) {

    textList = (TextView) view.findViewById(R.id.listTextView);
    textList.setText(allFormulas.get(index).toString());
    textRes = (TextView) view.findViewById(R.id.resultTextView);
    Button button = (Button) view.findViewById(R.id.formulaSolve);

    button.setOnClickListener(new OnClickListener() {

       @Override
        public void onClick(View view) {

            if(textList.getText().toString() == "")
            {
                textList.setText("");
            }
            else
            {
                ExpressionBuilder builder=new ExpressionBuilder(textList.getText().toString());
                Calculable cal=null;
                try {
                    cal = builder.build();
                } catch (UnknownFunctionException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (UnparsableExpressionException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                double d = cal.calculate();

                if(d == Math.floor(d))
                {
                    textRes.setText("="+Integer.toString((int) d));
                }

                else
                {
                    textRes.setText("="+Double.toString(d));
                }
            }

        }
    });


    return view;
}
4

3 回答 3

2

问题在于这一行:

if(textList.getText().toString() == "")

在java中,您不能将字符串与==

将其更改为:

if(textList.getText().toString().equals(""))
于 2013-11-08T02:52:47.460 回答
0

In Java we are using equal() method for comparing string

if(textList.getText().toString().equals(""))
{
    textList.setText("");
}

but I think if you want accurate output you can use

if(textList.getText().toString().equalsIgnoreCase(""))
{
    textList.setText("");
}

Thanks.

于 2013-11-08T04:28:11.813 回答
0

首先,请使用

等于()方法

用于代码中以下行的字符串比较

if(textList.getText().toString() == "")
{
    textList.setText("");
}

作为

if(textList.getText().toString().equals(""))
{
    textList.setText("");
}

谢谢。

于 2013-11-08T02:54:02.497 回答