好的,这应该是直截了当的,但我遇到了困难。到目前为止,我已经得到了这个代码。
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 是一个全局变量,它将微调器的值存储为字符串。
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;
}
这是基于我已经使用过的代码,但基本上我想根据我的数据库中的问题检查微调器,如果它们匹配,我想将文本视图更改为答案。现在 FAQ.SpinnerFAQ 工作正常,但 c.getString(iQuestion) 总是显示为数据库中的最后一个值。此代码“结果 = 结果 + c.getString(iAnswer) + "\n";" 没有 if 语句就可以正常工作,所以我真的不明白为什么“c.getString(iQuestion)”有问题。任何帮助将不胜感激。