0

Cursor c=managedQuery(Contacts.CONTENT_URI,null,null,null,Contacts.DISPLAY_NAME+" ASC") を使用して Cursor を取得できることはわかっています。

myMRuleList から Cursor を取得したいのですが、どうすればよいですか? ありがとう!

lv = getListView();
Cursor c=managedQuery(Contacts.CONTENT_URI,null,null,null,Contacts.DISPLAY_NAME+" ASC");    
String[] cols=new String[] {Contacts.DISPLAY_NAME};
int[] views=new int[]{android.R.id.text1};
SimpleCursorAdapter myAdapter=new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,cols,views);
this.setListAdapter(myAdapter);

List<MRule> myMRuleList=new ArrayList<MRule>;
MRule aMRule=new MRule();
aMRule.ruleID=1;
aMRule.name="a";
aMRule.enabled=false;
MRule bMRule=new MRule();
bMRule.ruleID=1;
bMRule.name="b";
bMRule.enabled=false;
myMRuleList.add(aMRule);
myMRuleList.add(bMRule);

public class MRule {
  public int ruleID;
  public String name;
  public Boolean enabled;

}
4

3 に答える 3

4

Cursorから を作成しないでくださいList。永続的なストレージにデータを挿入/更新する場合は、 SQLite データベースによって提供される および を使用する必要がありますinsert()update()ContentResolver.insert()/update()SQLiteOpenHelper.insert()/update()ContentProviders

Cursors は通常、ContentProviders ではなくテーブルのような構造 ( s/Databases)で使用されますList

zapl が推奨するように、フレームワークを避けmanagedQuery()て使用する必要がありますLoader。そうすることで、クエリは別の で実行されますThread

于 2013-11-12T02:44:26.267 に答える
0

どうしてそうするか?データベースを更新するためですか、それとも何を達成したいですか?

Cursor クラスの Google リファレンスへのリンクは次のとおりです。

http://developer.android.com/reference/android/database/Cursor.html

データベースを更新したいだけなら、この SO の質問を読んでください:

CursorLoader を介して ContentProvider の insert() メソッドを使用して、値を SQLite データベースに正しく挿入する方法は?

于 2013-11-12T03:11:03.770 に答える
0

android.database.MatrixCursor、 これは、あなたの望むことですか?

于 2013-11-12T03:13:01.453 に答える