Я пытаюсь сделать ContentProvider
с каждой записью, содержащей вопрос и соответствующий ответ.И Activity, показывающий TextViews каждого вопроса и ответа и кнопку «Next» под этими TextViews.При нажатии кнопки «Далее» я хотел бы показать следующий вопрос и ответ.
Я пытаюсь использовать CursorLoader и LoaderManager, потому что CursorLoaders хранят свои данные по onStop()
и onStart()
, и я пытаюсь узнать о CursorLoaders
и LoaderManagers
.
Все примеры, которые я нашел, используют setListAdapter()
, но я не хочу, чтобы моя деятельность выглядела как список.Я пытался обойти это, используя SimpleCursorAdapter
и используя bindView()
для моего main.xml
макета.Не уверен, что это сработает.
Если бы у меня был простой курсор, я бы использовал moveToNext()
, но для LoaderManager
кажется, что мне нужно restartLoader()
с новым запросом.Я думаю, что создание нового запроса будет стоить больше времени, чем просто переход к следующей записи с курсором.Тем более, что мне нужно знать положение текущей или следующей записи.
Поэтому мой вопрос: могу ли я использовать CursorLoader
и LoaderManager
для просмотра базы данных, запись за записью без необходимостисделать новый запрос для следующей записи?Или CursorLoaders
и LoaderManagers
действительно только для ListViews?
Вот мой код, я понимаю, что он немного, но я прочитал и перечитал страницы Android в Loaders and LoadManager.
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) {
}
});
}