2013-04-11 2 views
0

Хорошо, это должно быть прямолинейно, но у меня возникают трудности с ним. Пока у меня этот код.Получите значение от счетчика и измените текстовый вид в зависимости от этого значения

public void onItemSelected(AdapterView<?> parent, View view, int position, 
     long id) { 
     // On selecting a spinner item 

     SpinnerFAQ = parent.getItemAtPosition(position).toString(); 
     // Showing selected spinner item 
     Toast.makeText(parent.getContext(), "You selected: " + SpinnerFAQ, 
      Toast.LENGTH_LONG).show(); 

     TextView tv = (TextView) findViewById(R.id.faq_answer); 
     ExerciseData question = new ExerciseData(this); 
     question.open(); 
     String answer = question.getFaqAnswer(); 
     question.close(); 
     tv.setText(answer); 

    } 

SpinnerFAQ - глобальная переменная и сохраняет значение счетчика как String.

public String getFaqAnswer() { 
     // TODO Auto-generated method stub 
     String[] columns = new String[] { FAQ_ROWID, FAQ_QUESTION, FAQ_ANSWER}; 
     Cursor c = ourDatabase.query(DATABASE_TABLE2, columns, null, null, null, null, null); 
     String result = ""; 

     int iRow = c.getColumnIndex(FAQ_ROWID); 
     int iQuestion = c.getColumnIndex(FAQ_QUESTION); 
     int iAnswer = c.getColumnIndex(FAQ_ANSWER); 

     //c.getString(iRow) + " " + 

     for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) 
     { 
      if(FAQ.SpinnerFAQ == c.getString(iQuestion)) 
      { 
       result = result + c.getString(iAnswer) + "\n"; 
       break; 
      } 
     } 

     return result; 
    } 

Это основано на коде я уже использовал, но в основном я хочу, чтобы проверить Spinner против вопроса в моей базе данных, и если они совпадают, я хочу, чтобы изменить Text View к ответу. В настоящий момент FAQ.SpinnerFAQ работает отлично, но c.getString (iQuestion) всегда отображается как последнее значение в базе данных. Этот код "result = result + c.getString (iAnswer) +" \ n ";" отлично работает без инструкции if, поэтому я не понимаю, почему возникает проблема с «c.getString (iQuestion)». Любая помощь будет принята с благодарностью.

ответ

1
if(FAQ.SpinnerFAQ == c.getString(iQuestion)) 

Никогда не сравнивайте строк с == в Java, всегда используйте equals(). Пожалуйста, прочитайте: How do I compare strings in Java? и изменить каждое сравнение строк на:

if(FAQ.SpinnerFAQ.equals(c.getString(iQuestion))) 
+0

+1 узнал этот нелегкий путь самого –

+0

Спасибо! Я полностью забыл :( – Kazuk

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