java - Android - SQL 手动插入
问题描述
我目前正在开发一个带有链接到数据库的问题的 android 测验应用程序,但是,我能够创建创建的数据库,但不知何故,不会手动插入诸如问题列表之类的值。当我打开数据库时,它已经组织了我想要的列,但不会显示任何值,例如“示例问题”我是否缺少某些代码行?
非常感谢
public class DatabaseHelper extends SQLiteOpenHelper
{
public static final String DATABASE_NAME = "Questions.db";
public static final String TABLE_NAME = "Questions";
public static final String QUESTION_NUMBER = "Question_Number";
public static final String QUESTION = "Question";
public static final String ANSWER_ONE = "Answer_ONE";
public static final String ANSWER_TWO = "Answer_THREE";
public static final String ANSWER_THREE = "Answer_FOUR";
private SQLiteDatabase db;
public DatabaseHelper(Context context)
{
super(context,DATABASE_NAME, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db)
{
this.db = db;
final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " +
TABLE_NAME + " ( " +
QUESTION_NUMBER + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
QUESTION + " TEXT, " +
ANSWER_ONE + " TEXT, " +
ANSWER_TWO + " TEXT, " +
ANSWER_THREE + " TEXT " +
")";
db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
fillQuestionTable();
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1)
{
db.execSQL("DROP TABLE IF EXISTS " +TABLE_NAME);
onCreate(db);
}
private void fillQuestionTable()
{
Question q1 = new Question(1,"Example Question?","Yes","Sometimes","No");
addQuestion(q1);
}
private void addQuestion (Question question)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(QUESTION_NUMBER, question.getQuestionNum());
cv.put(QUESTION, question.getQuestion());
cv.put(ANSWER_ONE, question.getOption1());
cv.put(ANSWER_TWO, question.getOption2());
cv.put(ANSWER_THREE, question.getOption3());
db.insert(TABLE_NAME,null,cv);
}
}
这是活动课
public class MainActivity extends Activity implements View.OnClickListener
{
Button screenOneButton;
Button screenTwoButton;
Button screenThreeButton;
Button quitButton;
DatabaseHelper mydb;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatabaseHelper mydb = new DatabaseHelper(this);
}
这是在 Intellij 软件下编程的,并且能够在 DB SQL 软件下打开数据库仅供参考!
非常感谢
解决方案
推荐阅读
- ruby-on-rails - How to output Rails image_tag with Vue class binding
- css - 如何避免我的圈子相互重叠(CSS)?
- javascript - 状态未初始化为 reducer 的初始状态
- functional-programming - 使用函数式编程方法迭代网格的 (x,y) 位置
- ios - 如何在我的应用程序中获取 ibook 的 pdf 文件?
- java - 我想将投标价格从 jforex (Dukascopy.com) 转移到 DLL (C++)
- python - numpy中的挤压功能内存不足
- async-await - AWS Lambda 异步/等待样板
- reporting-services - 在 SSRS 中使用 IN 语句进行查询
- javascript - 为什么 JSON.parse() 不能按预期工作