0

当我更新我的 SQL 数据库中的某个字段然后点击后退按钮,回到我的 gridview(在我的 Level 类中)时,我遇到了问题。目的是我在 gv 项目中有一个图像和一个文本,如果用户给出正确的答案,我希望更新文本:

//in my custom adapter:
//...
        if (mView != null) {

            int correctAnswer = getItem(position).getAnswerCorrect();
            if(correctAnswer == 1) { text.setText("yea"); } else { text.setText("too bad"); }
}

如果您单击一个项目,您将进入 Answer.java:

if (qAnswer.equals(userAnswer)) {
                Toast.makeText(getApplicationContext(), ("Answer Correct"),
                        Toast.LENGTH_SHORT).show();
//update database:
                myDbHelper.updateAnswerCorrect((int)id, level);

            } else {
                Toast.makeText(getApplicationContext(), ("Wronggggg"),
                        Toast.LENGTH_SHORT).show();
            }

奇怪的是,当我转到主屏幕并再次启动Level.java时(Answer -> Level -> Main -> Level),它以正确的方式显示。如果我只是返回一个屏幕回到网格视图(答案 - > 级别),我怎么看不到它?

我试图把它放在我的 Level 课程中,但它似乎不起作用:

@Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        myAdapter.notifyDataSetChanged();
    }
4

1 回答 1

1

您必须使用托管光标(http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/3/),或者只是重新创建一个新的适配器(myAdapter = new MyAdapter( ...)) 并在 onResume() 中使用新的调用 gridview.setAdapter()

于 2012-10-05T12:54:33.133 回答