在Android中从SQLite数据库获取数据的最佳方法

时间:2015-01-31 05:09:44

标签: android sqlite listview

我正在制作一个使用天气API的应用程序,以便当人们输入邮政编码时,它会显示特定区域的详细天气状况。如果我的邮政编码有效,那么我保存我的邮政编码,以便下次启动我的应用程序时,我有所保存的所有邮政编码列表(所有zipcodes填写在listview中)。我使用SQLite数据库保存我的邮政编码

目前,我正在使用AsyncTask查询我的数据库,获取所有行并在listview中显示它。但我觉得这不是查询数据库和获取结果的最佳方法。任何人都可以告诉我应该用于查询SQLite数据库并在listview中显示结果的最佳和最有效的策略。我想我需要使用装载机。

由于

1 个答案:

答案 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);