我有两个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;
}
答案 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("");
}
感谢。