возможно ли создать представление, управляемое SimpleCursorAdapter .Содержимое этого представления всегда является записью из БД.
Вид (dataView) выглядит следующим образом:
txtData1
txtData2
txtData3
btnPrev btnNext
Я прочитал и попытался настроить это поведение.Надеюсь, что это имеет смысл:
public class mActivity extends Activity {
public Context me = this;
public SimpleCursorAdapter mAdapter = null;
public Cursor mCursor = null;
private OnClickListener btnStart_onClick = new OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.dataView);
mCursor = mDB.rawQuery("SELECT * FROM Data", null);
startManagingCursor(mCursor);
mAdapter = new SimpleCursorAdapter(
me,
R.layout.dataView,
mCursor,
new String[] {"Data1", "Data2", "Data3"},
new int[] {R.id.txtData1 , R.id.txtData2, R.id.txtData3});
mAdapter.setViewBinder(VIEW_BINDER);
mCursor.moveToFirst();
}
};
static final ViewBinder VIEW_BINDER = new ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex)
{
switch (view.getId())
{
case R.id.txtData1:
TextView txt = (TextView) view;
if (txt != null)
{
int index = cursor.getColumnIndex("Data1");
txt.setText(cursor.getString(index));
}
return true;
case R.id.txtData2:
TextView txt = (TextView) view;
if (txt != null)
{
int index = cursor.getColumnIndex("Data2");
txt.setText(cursor.getString(index));
}
return true;
case R.id.txtData3:
TextView txt = (TextView) view;
if (txt != null)
{
int index = cursor.getColumnIndex("Data3");
txt.setText(cursor.getString(index));
}
return true;
default:
return false;
}
}
};
}
Когда я запускаю с btnStart_onClick, я не получаю Данные в своих текстовых полях: - (
Может кто-нибудь помочь? Может ли это работать так?
Следующий вопрос: как я могу использовать кнопки «Предыдущий» или «Следующий»? Возможно, это единственное, что мне не хватает, чтобы «загрузить» первые данные ...
РЕДАКТИРОВАТЬ: я расширил свой пример с глобальным mCursor ивызов mCursor.moveToFirst () В моем приложении я также протестировал кнопки next / prev и функции mCursor.moveToNext () и mCursor.moveToPrevious ()
Но это не изменится: - (