我正在制作一个使用天气API的应用程序,以便当人们输入邮政编码时,它会显示特定区域的详细天气状况。如果我的邮政编码有效,那么我保存我的邮政编码,以便下次启动我的应用程序时,我有所保存的所有邮政编码列表(所有zipcodes填写在listview中)。我使用SQLite数据库保存我的邮政编码
目前,我正在使用AsyncTask查询我的数据库,获取所有行并在listview中显示它。但我觉得这不是查询数据库和获取结果的最佳方法。任何人都可以告诉我应该用于查询SQLite数据库并在listview中显示结果的最佳和最有效的策略。我想我需要使用装载机。
由于
答案 0 :(得分:0)
您不必为数据库相关工作执行AsyncTask,
您只需从活动中连接到数据库
SQLiteDatabase db;
Cursor c;
ListView lv1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv1 = (ListView) findViewById(R.id.listView1);
db = openOrCreateDatabase("MyDB", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS Wheather(Report VARCHAR)");
c = db.rawQuery("SELECT * FROM Wheather",null);
int count = c.getCount();
String values[] = new String[count+1];
int i = 0;
while(c.moveToNext())
{
values[i]= c.getString(c.getColumnIndex("Report"));
i++;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(),
android.R.layout.activity_list_item, android.R.id.text1,values);
lv1.setAdapter(adapter);