小编Tim*_*Tim的帖子

在ListView的AbsListView.obtainView的ListView中崩溃

我正在使用ContentObserver观看ListActivity上的内容更新,如下所示:

protected void onCreate(Bundle savedState)
   {
        super.onCreate(savedState);

        ContentResolver cr = getContentResolver();

        Cursor cursor = cr.query(TrackHeader.CONTENT_URI, sTrackListProjection, null, null, null);
        startManagingCursor(cursor);

        this.mAdapter = new TrackHeaderDataAdapter(this, R.layout.track_list_item, cursor, sTrackListProjection, null);
        setListAdapter(mAdapter);

        Handler handler = new Handler();

        mTrackHeaderObserver = new ContentObserver(handler) {

             @Override 
             public boolean deliverSelfNotifications() { 
                 return false;
             }

             @Override
             public void onChange(boolean selfChange) {
                 super.onChange(selfChange);
                 ContentResolver cr = getContentResolver();
                 mAdapter.changeCursor(cr.query(TrackHeader.CONTENT_URI, sTrackListProjection, null, null, null));
              }
         };

      getContentResolver().registerContentObserver (TrackHeader.CONTENT_URI, true, mTrackHeaderObserver);
  }
Run Code Online (Sandbox Code Playgroud)

这个内容观察者似乎没问题 - 它在UI线程上被回调,但我在底层ListView上可以预见到以下随机崩溃:

02-21 14:06:00.440: ERROR/AndroidRuntime(739): java.lang.NullPointerException
02-21 14:06:00.440: ERROR/AndroidRuntime(739): …
Run Code Online (Sandbox Code Playgroud)

android listview

56
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×1

listview ×1