2013-11-08 3 views
-2

У меня есть два TextViews. Один из них принимает в качестве текстового параметра (setText(String s)) объект от ArrayList, а другой принимает результат некоторых вычислений.TextView setText (String s) не работает?

Самое смешное, что первый получает свой текст, а второй пуст.

Любые идеи, почему?

Спасибо заранее :)

С наилучшими пожеланиями, Димитр Георгиев!

Вот мой код:

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

ответ

2

Проблема с этой линии:

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

В Java вы не можете сравнить строки с ==

изменить это на:

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

Прежде всего, пожалуйста, используйте

Equals() метод

для сравнения строк на следующую строку в коде

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

в

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

Спасибо.

0

В Java мы используем метод равного() для сравнения строки

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

, но я думаю, что если вы хотите точный вывод, который вы можете использовать

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

Спасибо.

Смежные вопросы