我正在尝试使ContentProvider
每条记录都包含一个问题和相应的答案。以及显示每个问题和答案的 TextView 的 Activity 以及这些 TextView 下方的“下一步”按钮。单击下一步按钮时,我希望显示下一个问题和答案。
我正在尝试使用 CursorLoader 和 LoaderManager,因为 CursorLoader 将它们的数据保存在onStop()
and之间onStart()
,并且我正在尝试了解CursorLoaders
and LoaderManagers
。
我发现的例子都使用了setListAdapter()
,但我不希望我的活动看起来像一个列表。我试图通过使用 aSimpleCursorAdapter
和使用bindView()
我的main.xml
布局来解决这个问题。不确定这是否可行。
如果我有一个普通的 Cursor,我会使用moveToNext()
,但对于一个新的查询,LoaderManager
我似乎必须这样做。restartLoader()
我认为创建一个新查询比简单地使用游标转到下一条记录要花费更多时间。特别是因为我必须知道当前或下一个记录的位置。
所以我的问题是:我可以使用CursorLoader
andLoaderManager
来遍历数据库,逐条记录,而无需对下一条记录进行新的查询吗?还是真的只适用于 ListViews CursorLoaders
?LoaderManagers
到目前为止,这是我的代码,我意识到它并不多,但我已经阅读并重新阅读了关于 Loaders 和 LoadManagers 的 Android 页面。
public class Main extends Activity implements LoaderManager.LoaderCallbacks<Cursor>{
SimpleCursorAdapter adapter;
String curFilter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.adapter = new SimpleCursorAdapter(getApplicationContext(),
R.layout.main,
null,
new String[]{},
new int[]{R.id.questionText,R.id.answerText},
0);
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainLayout);
this.adapter.bindView(mainLayout, getApplicationContext(), null);
this.getLoaderManager().initLoader(0,null, this);
Button nextQuestionButton = (Button)this.findViewById(R.id.Nextbutton);
nextQuestionButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick (View v) {
}
});
}