无法在列表活动中创建数据库

时间:2011-04-18 04:32:25

标签: android database

我试图在单击按钮时在listactivity中创建一个数据库..但是我收到错误

  

方法   openOrCreateDatabase(String,int,   对于new类型,未定义null   View.OnClickListener(){}“和   “无法解析DefaultDBHelper。

有没有办法在列表活动中这样做?请帮忙!!!

我的代码:

reset.setOnClickListener(new OnClickListener() 
{
   private int count;
   @Override public void onClick(View v) 
   {
      SQLiteDatabase myDB = this.openOrCreateDatabase(MY_DATABASE_NAME, SQLiteDatabase.OPEN_READWRITE, null);
      try 
      { 
          /* Create the Database (no Errors if it already exists) */
          // myDB = dbHelper.getWritableDatabase();
          // dbHelper.onCreate(myDB);
          myDB.execSQL("CREATE TABLE IF NOT EXISTS " 
                       + DefaultDBHelper.MY_DATABASE_TABLE 
                       + " (LastName VARCHAR, FirstName VARCHAR," 
                       + " Country VARCHAR, Age INT(3));");

          myDB.execSQL("INSERT INTO " 
                       + DefaultDBHelper.MY_DATABASE_TABLE 
                       + " (LastName, FirstName, Country, Age)" 
                       + " VALUES ('name', 'title', 'country', 20);"); 
      }
      catch (SQLiteException e) { 
      } 
      finally { 
         if (myDB != null) 
            myDB.close(); 
      }
   }
});

2 个答案:

答案 0 :(得分:4)

你只需改变这样的代码

SQLiteDatabase myDB = getBaseContext().openOrCreateDatabase(MY_DATABASE_NAME, SQLiteDatabase.OPEN_READWRITE, null);

我认为这会对你有所帮助

答案 1 :(得分:0)

 reset.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                 SQLiteDatabase myDB =openOrCreateDatabase("DB_NAME", MODE_WORLD_WRITEABLE ,null);



            }
        });

以下代码将起作用。我已经测试了它。' this '引用了你在那里创建的OnClickListener对象。这导致编译错误。找出'这个'将解决问题