TextView setText(String s)不起作用?

时间:2013-11-08 02:45:43

标签: java android textview android-adapter

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

有趣的是,第一个获取他的文本而第二个是空的。

任何想法为什么?

提前谢谢你:)

致以诚挚的问候,Dimitar Georgiev!

这是我的代码:

 @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;
}

3 个答案:

答案 0 :(得分:2)

问题在于这一行:

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

在java中,您无法将字符串与==

进行比较

将其更改为:

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

答案 1 :(得分:0)

首先,请使用

  

equals()方法

用于代码

中以下行的字符串比较
if(textList.getText().toString() == "")
{
    textList.setText("");
}

as

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

感谢。

答案 2 :(得分:0)

在Java中,我们使用equal()方法来比较字符串

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

但我认为如果您想要准确的输出,可以使用

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

感谢。