0

私は多くのプロジェクトでサーバー - コンテンツ プロバイダーへのアプローチ resuest を使用しlistViewており、うまく機能しています。しかし、私は本当に奇妙な問題に直面しました - (uri, null) データを挿入または削除しても、notifyChangeデータが自動的に更新されません。listview

    {
     ListView listView = (ListView) findViewById(R.id.list);
     View header = View.inflate(this, R.layout.header, null);
     listView.addHeaderView(header);


     adapter = new Adapter(this, R.layout.item, null, true);
     listView.setAdapter(adapter);

     getSupportLoaderManager().restartLoader(0, null, this);
    }

    @Override
    public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
           return new CursorLoader(this, Statuses.URI, null , null, null, null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        adapter.changeCursor(arg1);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        adapter.changeCursor(null);
    }

// inset method of content provider
    long id = db.getWritableDatabase().insertWithOnConflict(table, null, values, SQLiteDatabase.CONFLICT_REPLACE);
    Uri newUri = Uri.withAppendedPath(uri, Long.toString(id));
    cr.notifyChange(newUri, null);
    return newUri;

//delete method of contetn provider
   int count = db.getWritableDatabase().delete(table, selection, selectionArgs);
    cr.notifyChange(uri, null);
    return count;

このコードに問題はありますか?

4

1 に答える 1

0

解決しました。カーソルが戻る前に Uri を追加するのを忘れました。

于 2013-05-23T16:53:00.240 に答える