【发布时间】:2015-08-29 21:49:13
【问题描述】:
我想当点击按钮时,只要列表视图显示一个对话框处理器,跳转后查看完整列表显示其他处理器行。对于低数据,智能手机工作正常,但如果数据太大而无法在列表视图中显示,并且列表视图智能手机在填充时会挂起。请指导我。
这段代码
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
openandquery();
displayResultList();
}
});
public void openandquery() {
baseHelper= new DataBaseHelper(contex);
boolean exists= baseHelper.checkDataBase();
if (exists){
message.messages(contex, "True : There database ");
try {
boolean open= baseHelper.openDataBase();
if (open)
{
message.messages(contex, "True : database open");
Cursor cursor= baseHelper.getTestData(edittext.getText().toString());
countf=cursor.getCount();
if (countf<=0)message.messages(contex, "Not Found");
}
else
message.messages(contex, "False : NO database open");
} catch (SQLException e) {
message.messages(contex, "Error Open : " + e.getMessage());
}
}
else
message.messages(contex, "False : There is no database");
}
private void displayResultList() {
try {
array=baseHelper.results;
tView.setText("Size : " +array.size());
try {
arrayAdapter=new display();
arrayAdapter.notifyDataSetChanged();
listV.setAdapter(arrayAdapter);
} catch (Exception e) {
message.messages(contex, e.getMessage());
}
listV.setTextFilterEnabled(true);
} catch (Exception e) {
message.messages(contex, e.getMessage());
}
}
这段代码在 openandquery 中调用
public Cursor getTestData(String phone)
{
String sql ="SELECT * FROM cusomer WHERE address!='' and key='"+p;
message.message(mContext, ":"+p+":");
try
{
if (p.isEmpty())
{sql="SELECT * FROM cusomer WHERE address!=''";
}
Cursor mCur = mDataBase.rawQuery(sql, null);
message.message(mContext, mCur.getCount()+"");
if (mCur!=null)
{
if (mCur.moveToFirst()){
try {
do{
String d=mCur.getString(mCur.getColumnIndex("address"));
String p= mCur.getString(mCur.getColumnIndex("phone"));
int k=mCur.getInt(mCur.getColumnIndex("key"));
int i=mCur.getInt(mCur.getColumnIndex("_id"));
long t=mCur.getLong(mCur.getColumnIndex("registertime"));
results.add(new msgstore(d,p,k,i,t));
}while(mCur.moveToNext());
} catch (Exception e) {
message.message(mContext, e.getMessage());
}
}
mCur.close();
}
return mCur;
}
catch (SQLException mSQLException)
{
message.message(mContext, "getTestData >>"+ mSQLException.toString());
throw mSQLException;
}
}
【问题讨论】:
-
100,000 条记录无法在智能手机上滚动浏览。没有实际需要将所有这些记录一次放入列表视图的情况。
标签: android sqlite listview progressdialog