0

我正在尝试与我的应用程序建立数据库连接。它有一个访问者的允许和拒绝按钮。每当我尝试调用数据库类的操作时,我的应用程序强制关闭。例如,当我单击允许按钮时,我希望应用程序将访问者 ID、日期和字符串响应存储在数据库中。以下是我为按钮设置的 mainActivity 中的代码:

//databaseVisitor VisDB = new databaseVisitor (this);
//VisitorDatabase VDB = new VisitorDatabase();
//Defining the actions of the Allow Button

Button.OnClickListener allowListener = new Button.OnClickListener(){
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        Toast allowToast = Toast.makeText(MainActivity.this, R.string.toastYes, Toast.LENGTH_LONG);
        allowToast.show();

        //Log.d("Insert Log: ", "Inserting add log..");
        //count = VisDB.getVisitorCount();
        response = "Access Granted";
        //dt = date.getDate();

        //VisDB.addVisitor(new VisitorDatabase(count+1, dt, response));

    }   
};
4

2 回答 2

2

很可能是因为您正在关闭光标

cursor.close()

然后对其进行操作

return cursor.getCount()

像这样试试

int count = cursor.getCount();
cursor.close();
return count;

编辑 :

至于 VisDB 那样做

...
databaseVisitor VisDB;
...
public void onCreate(Bundle savedInstanceState) {
      ...
      VisDB = new databaseVisitor (this);
      ...
}
于 2012-12-03T18:25:39.790 回答
1

你在给 getCount() 之前关闭了游标。试试这个:

int count = cursor.getCount();
cursor.close();
return count;

祝你好运!

于 2012-12-03T18:28:49.940 回答