- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从数据库中获取信息列表并将其显示到自定义 ListView 中。我已经有了 DatabaseHelper、Fragment 和 Adapter 设置。以下是我收到的错误:
04-29 13:36:52.539: E/AndroidRuntime(8135): FATAL EXCEPTION: main
04-29 13:36:52.539: E/AndroidRuntime(8135): java.lang.NullPointerException
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.<init>(SQLiteAssetHelper.java:110)
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.<init>(SQLiteAssetHelper.java:130)
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.rcd.mypr.Workouts.WorkoutsDatabaseHelper.<init>(WorkoutsDatabaseHelper.java:35)
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.rcd.mypr.Workouts.WorkoutsFragment.onCreateView(WorkoutsFragment.java:36)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:828)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1032)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.BackStackRecord.run(BackStackRecord.java:622)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1382)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.os.Handler.handleCallback(Handler.java:605)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.os.Handler.dispatchMessage(Handler.java:92)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.os.Looper.loop(Looper.java:137)
04-29 13:36:52.539: E/AndroidRuntime(8135): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-29 13:36:52.539: E/AndroidRuntime(8135): at java.lang.reflect.Method.invokeNative(Native Method)
04-29 13:36:52.539: E/AndroidRuntime(8135): at java.lang.reflect.Method.invoke(Method.java:511)
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-29 13:36:52.539: E/AndroidRuntime(8135): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-29 13:36:52.539: E/AndroidRuntime(8135): at dalvik.system.NativeStart.main(Native Method)
这是我的 WorkoutsDatabaseHelper.java
package com.rcd.mypr.Workouts;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class WorkoutsDatabaseHelper extends SQLiteAssetHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "workoutsDatabase.sqlite";
private static final String WORKOUTS_TABLE = "workouts";
// Workouts Table Columns names
private static final String KEY_ID = "_id";
private static final String KEY_WORKOUT_NAME = "workout_name";
private static final String KEY_HERO_LAST_NAME = "hero_last_name";
private static final String KEY_HERO_FIRST_NAME = "hero_first_name";
private static final String KEY_HERO_MIDDLE_NAME = "hero_middle_name";
private static final String KEY_HERO_DESCRIPTION = "hero_description";
private static final String KEY_DATE_ADDED = "date_added";
private static final String KEY_WORKOUT = "workout";
private static final String KEY_MEASUREMENT = "measurement";
private static final String KEY_PHOTO = "photo";
public WorkoutsDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public Cursor getWorkoutNames() {
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(WORKOUTS_TABLE, new String[] {"_id", "workout_name"}, null, null, null,
null, KEY_WORKOUT_NAME + " ASC");
return cursor;
}
}
最后,这是我的 WorkoutsFragment.java
package com.rcd.mypr.Workouts;
import android.app.Fragment;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.rcd.mypr.R;
public class WorkoutsFragment extends Fragment {
WorkoutsDatabaseHelper db;
SimpleCursorAdapter adapter;
ListView listContent;
private int position;
Cursor cursor;
private Context mContext;
WorkoutsAdapter workoutsAdapter;
public WorkoutsFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
db = new WorkoutsDatabaseHelper(mContext);
mContext = getActivity();
View rootView = inflater.inflate(R.layout.activity_workouts, container, false);
listContent = (ListView) rootView.findViewById(android.R.id.list);
// Create the Adapter
workoutsAdapter = new WorkoutsAdapter(mContext, cursor);
// Set the adapter to ListView
listContent.setAdapter(workoutsAdapter);
return rootView;
}
private void initViews(){
//Typeface tf = Typeface.createFromAsset(mContext.getAssets(),"Roboto-Light.ttf");
}
private void addItemsToList(){
Cursor cursor = db.getWorkoutNames();
Log.d("history.java", "finished Cursor cursor = db.getAllLogs();");
String[] from = {"_id", "workouts_name"};
int[] to = {R.id.tv_id, R.id.tv_label};
adapter = new SimpleCursorAdapter(mContext, R.layout.single_item, cursor, from, to, 0);
listContent.setAdapter(adapter);
}
public void onResume(){
super.onResume();
workoutsAdapter = new WorkoutsAdapter(mContext, cursor);
listContent.setAdapter(workoutsAdapter);
}
}
如果您还需要查看其他内容,请告诉我。
最佳答案
错误出现在 Fragment
的 onCreateView()
方法中。您可以使用 null
Context
初始化您的 WorkoutsDatabaseHelper
。
db = new WorkoutsDatabaseHelper(mContext);
mContext = getActivity();
交换这两行并重试...
关于java - NullPointerException SQLiteAssetHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23371690/
我正在尝试从数据库中获取信息列表并将其显示到自定义 ListView 中。我已经有了 DatabaseHelper、Fragment 和 Adapter 设置。以下是我收到的错误: 04-29 13:
我在 Assets /数据库中有一个数据库,并且还有一个从数据库读取数据的类但是当打开数据库时我得到了缺少数据库错误 注意:我在 Assets /数据库中有 myDb.zip 这是我打开数据库的类:
我不理解文档,我担心如果我做错了,会不小心将我的表丢到我的数据库中并损坏原始文件。 https://github.com/jgilfelt/android-sqlite-asset-helper 关于
我正在使用 SqliteAssetHelper 从 Assets 文件夹导入数据库并将其复制到标准数据库应用程序文件夹。 虽然它的工作非常随机......当我用新文件替换 Assets 文件夹中的 .
如何通过 ID 检索特定数据并将其显示在 TextView 中?而不是检索数据并在 ListView 中显示所有数据。请帮忙! 公共(public)类 KaikaiProfileActivity 扩展
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Android sqlite returned: error code = 14 我已经使用 SQLiteAsset
我从 DatabaseHandler 中收到 NullPointerException。 这是我的数据库处理程序: public class DatabaseHandler extends SQLit
我正在使用 SQLiteAssetHelper 类来管理我的应用程序中的 SQLite 数据库。 为此,我遵循了 GitHub 上有关如何使用 SQLiteAssetHelper 的说明,即将 com
我正在扩展 SQLiteAssetHelper 类以使用 Assets 文件夹中我预填充的数据库,但我的应用程序崩溃并给出错误提示 Caused by: android.database.sqlite
我开发了一个教程应用程序,其中保存了 500 多个问题和答案。他们是另一张名为收藏夹的 table 。用于用户输入。现在,我想用新的问题和答案更新我的应用程序。但我不想删除收藏夹表的数据(以防用户将一
我正在尝试创建一个包含 2 个不同表的数据库,一个可读,一个可写。用户将从可读表中获取信息并将他们的印象写入可写表(或者我希望如此)。日志类是由不同条目组成的日志。由于我希望预先填充可读数据库,因此我
我在使用 SQLiteAssetHelper 时在某些设备上遇到崩溃问题在我的应用程序中,主要是在 OnePlus 设备上。现在我读了here它与数据库存储的目录有关。 现在我正在尝试找到一个解决方法
我正在使用 SQLiteAssetHelper 库来处理我的应用程序数据库操作,它几乎适用于我测试过的每部手机。然而,一些使用 Android 2.3.3 - 2.3.7 的用户报告在调用打开数据库时
我目前正在编写一个 Android 应用程序。为了读取预先存在的数据库,我使用 SQLiteAssethelper。它工作得很好,但谁能告诉我如何使用 SQLiteAssethelper 插入数据?谢
在开发Android应用程序时我使用Android SQLiteAssetHelper 。问题是,偶尔在访问数据库时,我会在对象 DBQuery 中的对象 NullPointerException 中
我正在考虑使用 SQLiteAssetHelper我的应用程序中的库。我实际上找到了如何从数据库读取数据,但我不知道如何插入/删除/更新它们。 这甚至可能吗? 谢谢你帮助我! 最佳答案 pub
SQLiteOpenHelper 和 SQLiteAssetHelper 有什么区别?我该如何使用它们? 我知道,当您使用 SQLiteOpenHelper 时,您必须覆盖 onCreate() 和
我正在使用 Android SqliteAssetHelper 库 ( https://github.com/jgilfelt/android-sqlite-asset-helper )我已经使用这个
阅读 https://github.com/jgilfelt/android-sqlite-asset-helper 上的文档后,我似乎无法理解如何升级数据库 我只想将用户数据保存在一个表中。我不需要
我是 Robolectric 的新手,所以如果我在这里遗漏了一些明显的东西,请提前致歉。我有一个应用程序使用 SQLiteAssetHelper 从 assets 目录加载数据库,我想使用 Robol
我是一名优秀的程序员,十分优秀!