我想更新listview中的任何更改,但我遇到错误ANDROID

时间:2012-09-05 07:42:37

标签: java android eclipse

我实现了一个带有刷新代码的onResume()方法,我遇到了错误

这是我的代码

// After completing background task Dismiss the progress dialog
    protected void onPostExecute(String file_url) {
        // dismiss the dialog after getting all events
        pDialog.dismiss();
        // updating UI from Background Thread
        runOnUiThread(new Runnable() {
            public void run() {
                // Updating parsed JSON data into ListView
                adapter = new SimpleAdapter(BookmarkActivity.this,
                        eventsList, R.layout.bookmark_list, new String[] {
                                TAG_EID, TAG_ENAME, TAG_CNAME,
                                TAG_CREATED_AT }, new int[] { R.id.bk_eid,
                                R.id.bk_ename, R.id.bk_cname,
                                R.id.bk_created_at });
                // updating listView
                setListAdapter(adapter);
            }
        });
    }
public void onResume(){
    super.onResume();
    ((BaseAdapter) adapter).notifyDataSetChanged();
}

这是我的logcat错误

09-05 07:39:36.223: E/AndroidRuntime(626): Caused by: java.lang.NullPointerException
09-05 07:39:36.223: E/AndroidRuntime(626):  at com.stts.sparetimetradingsystem.BookmarkActivity.onResume(BookmarkActivity.java:215)
09-05 07:39:36.223: E/AndroidRuntime(626):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
09-05 07:39:36.223: E/AndroidRuntime(626):  at android.app.Activity.performResume(Activity.java:3823)
09-05 07:39:36.223: E/AndroidRuntime(626):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
09-05 07:39:36.223: E/AndroidRuntime(626):  ... 12 more

我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

((BaseAdapter) adapter).notifyDataSetChanged();中,适配器对象为null ....在使用之前添加一个检查,表明适配器不为null ..

if(adapter != null)
    ((BaseAdapter) adapter).notifyDataSetChanged();

答案 1 :(得分:0)

在您的任务完成之前调用

问题 onResume

在执行此

之前

((BaseAdapter) adapter).notifyDataSetChanged();

检查适配器是否为空

if(adapter!=null)
    ((BaseAdapter) adapter).notifyDataSetChanged();