在Android上的EditText中显示由光标在EditText中返回的结果集
问题描述:
好心地帮助我调试或找到解决方案来解决我遇到的问题。 我在这里要做的是,读取数据库中的表中的所有值一个 游标对象。在Android上的EditText中显示由光标在EditText中返回的结果集
然后对于一个特定的列,即UID(这是一个外键),我想显示所有的多个行条目。 (比较UID cur.getString(3))
我用下面的代码来显示在TextView中的结果,但有一些延迟,我遇到了 。
一旦这个活动被调用,结果集并没有被显示,但是在几次重新登录尝试后,它运行正常。 (我的应用程序有一个登录表单)
因此,我决定使用一个TextView,可以显示结果集点击一个按钮,但是当我点击按钮时,活动崩溃。
package com.androidarun.mobilewallet;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class DisplayCCards extends Creditcard_Registration {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.creditcards_ui);
final EditText view = (EditText) findViewById(R.id.displayarea);
final StringBuilder ret = new StringBuilder(1000);
final MyDBAdapter db = new MyDBAdapter(getBaseContext());
Button showcc = (Button) findViewById(R.id.showcc);
showcc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Cursor cur = db.getAllCards();
cur.moveToFirst();
while (cur.isAfterLast() == false) {
if (Integer.parseInt(cur.getString(3))== UID)
ret.append("Credit card number: " + cur.getString(1) + " \n" +
" CVV : " + cur.getString(2)+ " \n " + " Validity : " + cur.getString(4)+ " \n ");
cur.moveToNext();
}
cur.close();
db.close();
view.setText(ret);
}
});
答
我认为你正在尝试做应该有
db.open();
while (cur.isAfterLast() != false) {
if (Integer.parseInt(cur.getString(3))== UID)
ret.append("Credit card number: " + cur.getString(1) + " \n" +
" CVV : " + cur.getString(2)+ " \n " + " Validity : " + cur.getString(4)+ " \n ");
cur.moveToNext();
}
db.close();
你应该打开和关闭每次您尝试访问它时分贝。同时应该有(cur.isAfterLast()=假
答
可以使用cur.moveToNext
功能作为while
条件,然后使用cur.getString(1)
和cur.getString(2)
内环路:
while (cur.moveToNext()) {
Log.e("h", c1.getString(1));
Log.e("h", c1.getString(2));
Log.e("h", c1.getString(3));
}
你有坠机任何日志? – MByD 2011-03-14 11:38:49
你可以告诉你从logcat登录崩溃的条目 – 2011-03-14 11:49:02
不,我没有做过 – Arun 2011-03-14 12:13:39