1

我试图从 3 个编辑文本中收集数据并将其保存以用于另一个活动。代码如下(我已编辑代码以仅显示一个编辑文本以供说服)

            EditText holdersala = (EditText) findViewById(R.id.rawsalary);

            String holdersalary = holdersala.getText().toString();
            final int salary = Integer.parseInt(holdersalary);

     SQLiteDatabase datab = openOrCreateDatabase("yourdata", MODE_PRIVATE, null);
      datab.execSQL("CREATE TABLE IF NOT EXISTS MainData (Salafig INT);");
      datab.execSQL("INSERT INTO MainData VALUES (@salary);");
          datab.close();

然后我在另一个活动中检索此信息并将其保存到文本视图中

    TextView bn = (TextView) findViewById(R.id.budget_need);


    SQLiteDatabase datab = openOrCreateDatabase("yourdata", MODE_PRIVATE, null);
    Cursor c = datab.rawQuery("SELECT * FROM MainData", null);
    c.moveToFirst();
    bn.setText(c.getString(c.getColumnIndex("Salafig")));
    datab.close(); 

出于某种原因,当我运行应用程序时,textview 是空白的。请帮忙。提前致谢。

4

1 回答 1

0

这里有一些建议。SQLite 与常规 SQL 有点不同 =)

您的第一个datab.execSQL("CREATE TABLE IF NOT EXISTS MainData (Salafig INT);");应该如下所示:

  datab.execSQL("CREATE TABLE MainData (Salafig INTEGER);");

如果它已经存在,SQLite 不会覆盖您的表,并且使用整数代替 int。

您的第二个查询datab.execSQL("INSERT INTO MainData VALUES (@salary);");应替换为:

    ContentValues values = new ContentValues();
    values.put("Salafig", salary);
    datab.insert("MainData", null, values);

最后你bn.setText(c.getString(c.getColumnIndex("Salafig")));应该替换为:

bn.setText(c.getInt("Salafig") + "");
于 2013-08-15T02:31:53.123 回答