我真的很努力解决这个问题,但没有找到答案或方法。
我正在尝试做的是将保存在SQLite列中的问题一个接一个地显示在TextView中,直到它们完成。
到目前为止,我在主要活动上做了什么
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatabaseHelper = new DatabaseHelper(this);
btn1star = (Button) findViewById(R.id.btn1star);
btn2star = (Button) findViewById(R.id.btn2star);
btn3star = (Button) findViewById(R.id.btn3star);
mListview = (ListView) findViewById(R.id.qlistview);
qTextView = (TextView) findViewById(R.id.qTextView);
questionsListView();
}
private void questionsListView() {
Cursor data = mDatabaseHelper.getData();
data.moveToFirst();
qTextView.setText(data.getString(1));
}
public void VoteClick(View view){
mDatabaseHelper.getReadableDatabase();
Cursor data = mDatabaseHelper.getData();
if (data.getCount() >=1){
for (int i = 0; i< data.getCount(); i++) {
data.moveToNext();
Log.i("Counted Questions are: ", String.valueOf(data.getCount()));
qTextView.setText(data.getString(1));
}
}
}
private void toastmessage (String message){
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
我能够显示第一个问题,当我单击最后一个问题按钮时,我无法显示两者之间的问题
。
有什么提示或建议吗?
在你的VoteClick
方法中,你做你的getReadableDatabase
,这太晚了,把这一行移到onCreate
方法中。必须先打开数据库,然后才能从中读取数据(以questionsListView
为单位(。
mDatabaseHelper.getReadableDatabase();//move to onCreate
添加这个:
startManagingCursor(data);
data.moveToFirst();
行前:
if (data.getCount() >=1){
您好找到了我的问题的解决方案
事实证明,我必须创建一个新的 int 变量 从第一个 id 获取其值 并在每次按钮按下结束时将其增加一个,直到我到达最后一个光标位置,我将光标移动到第一个位置
公共无效 投票点击(查看视图( {
Cursor data = mDatabaseHelper.getData();
data.moveToPosition(q);
data.moveToNext();
qTextView.setText(data.getString(1));
while (data.isLast()) {
data.moveToFirst();
q = data.getPosition();
}
q = q+1;
}