-2

私は2つ持っていTextViewsます。そのうちの 1 つはテキスト パラメータ ( setText(String s)) としてオブジェクトをArrayList取得し、もう 1 つは何らかの計算の結果を取得しています。

面白いのは、最初のものは彼のテキストを取得し、2 番目のものは空であることです。

理由はありますか?

前もって感謝します :)

敬具、ディミタール・ゲオルギエフ!

ここに私のコードがあります:

 @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

まずはご利用ください

equals() メソッド

コードの次の行での文字列比較用

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

なので

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

ありがとう。

于 2013-11-08T02:54:02.497 に答える
0

Java では、文字列の比較に equal() メソッドを使用しています。

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

しかし、正確な出力が必要な場合は使用できると思います

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

ありがとう。

于 2013-11-08T04:28:11.813 に答える