我想使用我已经使用SQLite数据库浏览器创建的预加载数据库来填充listview。但是,我不断收紧。对于DatabaseHelper类,我精确地在http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/上跟随了教程

这里是我的代码显示listView:

public class POITab extends ListActivity {

private SQLiteDatabase newDb;

protected Cursor cursor;

protected ListAdapter adapter;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

openDatabase();

}

private void openDatabase() {

POIHelper dbHelper = new POIHelper(this.getApplicationContext());

newDb = dbHelper.getWritableDatabase();

cursor = newDb.rawQuery("SELECT _id, Name FROM POI", null);

adapter = new SimpleCursorAdapter(this, R.layout.listitem, cursor, new String[] {"Name"}, new int[] {R.id.name});

setListAdapter(adapter);

}

@Override

public void onListItemClick(ListView parent, View view, int position, long id) {

Toast.makeText(getApplicationContext(), ((TextView) view).getText(),

Toast.LENGTH_SHORT).show();

}更新:我不知道,但我想问题在于线

cursor = newDb.rawQuery("SELECT _id, Name FROM POI", null);这是我的databaseHelper类的代码:

public class POIHelper extends SQLiteOpenHelper {

private static String DB_PATH = "/data/data/com.test.mysgapp/databases/";

private static String DB_NAME = "MySgAppdb";

private SQLiteDatabase myDatabase;

private final Context myContext;

public POIHelper(Context context) {

super(context, DB_NAME, null, 1);

this.myContext = context;

}

public void createDatabase() throws IOException {

boolean dbExist = checkDatabase();

if(dbExist) {

} else {

this.getReadableDatabase();

try {

copyDatabase();

} catch (IOException e) {

throw new Error("Error copying database");

}

}

}

private boolean checkDatabase() {

SQLiteDatabase checkDb = null;

try {

String myPath = DB_PATH + DB_NAME;

checkDb = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

} catch (SQLiteException e) {

}

if(checkDb != null) {

checkDb.close();

}

return checkDb != null ? true : false;

}

private void copyDatabase() throws IOException{

InputStream input = myContext.getAssets().open(DB_NAME);

String outFileName = DB_PATH + DB_NAME;

OutputStream output = new FileOutputStream(outFileName);

byte[] buffer = new byte[1024];

int length;

while ((length = input.read(buffer))>0) {

output.write(buffer, 0, length);

}

output.flush();

output.close();

input.close();

}

public void openDatabase() throws IOException {

String path = DB_PATH + DB_NAME;

myDatabase = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

}

@Override

public synchronized void close() {

if (myDatabase != null)

myDatabase.close();

super.close();

}

@Override

public void onCreate(SQLiteDatabase db) {

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}}

错误日志:

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): FATAL EXCEPTION: main

01-10 16:11:52.332: ERROR/AndroidRuntime(1311):

java.lang.RuntimeException: Unable to start activity

ComponentInfo{com.test.mysgapp/com.test.mysgapp.POITab}:

android.database.sqlite.SQLiteException: no such table: Places: ,

while compiling: SELECT _id, Name FROM Places 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.widget.TabHost.setCurrentTab(TabHost.java:323) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.view.View.performClick(View.java:2408) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.view.View$PerformClick.run(View.java:8816) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.os.Handler.handleCallback(Handler.java:587) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

android.os.Handler.dispatchMessage(Handler.java:92) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

android.os.Looper.loop(Looper.java:123) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.app.ActivityThread.main(ActivityThread.java:4627) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

java.lang.reflect.Method.invokeNative(Native Method) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

java.lang.reflect.Method.invoke(Method.java:521) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

dalvik.system.NativeStart.main(Native Method) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): Caused by:

android.database.sqlite.SQLiteException: no such table: Places: ,

while compiling: SELECT _id, Name FROM Places 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteCompiledSql.native_compile(Native

Method) 01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:64)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:80)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:46) 01-10

16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

com.test.mysgapp.POITab.openDb(POITab.java:42) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

com.test.mysgapp.POITab.onCreate(POITab.java:36) 01-10 16:11:52.332:

ERROR/AndroidRuntime(1311): at

android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): at

android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

01-10 16:11:52.332: ERROR/AndroidRuntime(1311): ... 18 more 01-10

16:11:52.392: WARN/ActivityManager(41): Force finishing activity

com.test.mysgapp/.MySgApp

android listview 预加载动画,Android - 使用预加载的数据库填充ListView相关推荐

  1. html如何添加加载动画效果,CSS3创建加载动画效果

    加载动画在网页设计中是很常见的.用户们都希望网页加载又快又流畅而不是盯着屏幕苦等,而加载动画能够在内容加载完成前给用户视觉反馈,从而能够吸引用户而不让他们直接放弃继续浏览你的网站. 创建加载效果所需的 ...

  2. android 仿qq录音动画,Android实现QQ点赞效果动画 Android动画

    版权声明:本文为代码部落原创文章,转载请注明出处. 前言 点赞是现在社交app中比较常用的功能,一个小小的点赞按钮如果能加上一些有趣动画,一来告诉用户你已经点了赞(这是对一些手残党极大的福音),二来人 ...

  3. android listview预加载动画,Android开发Activity页面预加载

    概述 某些业务场景下,为了提高用户体验,我们可能需要在前一个页面就将下一个页面的数据准备好,减少用户后续操作的时间.因为Activity在设计上采用了低耦合,高度的隔离使得传统的预加载Activity ...

  4. android listview下拉刷新动画,android 安卓 listview 支持下拉刷新 上拉加载更多

    [1]重写listViewimport java.text.SimpleDateFormat; import java.util.Date; import com.example.testdddlea ...

  5. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...

  6. android svga加载动画,android svga使用

    首先在项目的build.gradle中加入allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 然后在app下 ...

  7. android 今日头条加载动画,Android 仿今日头条简单的刷新效果实例代码

    点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感 ...

  8. android 悬浮窗的显示动画,android 悬浮窗特效

    最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画.但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处.效果图如下: 一开始考虑用自定义View来做.后来发现开线程让其 ...

  9. css 加载动画如何生效,CSS 加载动画

    CSS加载动画 实现加载动画效果,需要的两个关键步骤: 1.做出环形外观 border:16px solid #f3f3f3; border-radius:50%; border-top:16px s ...

最新文章

  1. Java - 框架之 SpringBoot 攻略day01
  2. CF888G Xor-MST (01字典树+MST)
  3. 提高工作效率,请收下这8个神器
  4. 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)
  5. 等概率随机函数的实现
  6. rk4.0系统鼠标图标更换
  7. python读写csv与数据库性能_使用python将csv文件写入SQL Server数据库
  8. 答复达内同学 2007-08-11
  9. 51单片机(At89C51)组成,引脚介绍
  10. 怎么用计算机程序求根公式,一元四次方程求根公式
  11. 货效,坪效,人效,这三效怎么理解?
  12. 2022-04-13 Ambient Light Proximity Sensor 光感和距离传感器 STK3311X调试记录 RK3566 Android11平台
  13. 【设计】工业设计公司设计师的原则
  14. 08-CSS属性:定位属性
  15. mysql 查询字母集合_使用MySQL查询查找所有以字母“ a”,“ b”或“ c”开头的名称?...
  16. 产品管理(Product Management)
  17. 错误: Unknown class XXX in Interface Builder file
  18. 当谈论机器学习中的公平公正时,我们该谈论些什么?
  19. R语言如何绘制词云图(17)
  20. iptables 窥探、扫盲

热门文章

  1. 构建自己的PHP框架(MVC)
  2. 2015湖南省选集训DAY5——work(BZOJ4177)
  3. C#调用自定义表类型参数
  4. 常见的Mule Esb下载地址
  5. Autolayout的简单介绍和示例代码
  6. 编程算法 - 最小的k个数 红黑树 代码(C++)
  7. 计算机常用技巧及快捷键
  8. JS 框架 :后台系统完整的解决方案
  9. 关于websocket 在生产环境中遇到的问题 及 解决办法
  10. XCode - 无法对iPhone真机调试的解决方法!