从Android应用程序中的数据库中读取数据

时间:2012-09-19 19:24:39

标签: android database sqlite android-intent

这是我从数据库中读取数据的代码。在这里,我只是接收值并使用“Toast”类打印它们。

public void OnClickLogin(View btnLogin)
{
    String email,password;
    String[] cols = new String[] {DataBase_Server.EMAIL, DataBase_Server.PASS};
    EditText edtPassword = (EditText) findViewById(R.id.edtPassword);
    EditText edtLoginId = (EditText) findViewById(R.id.btnLogin);
    DataBase_Server database=new DataBase_Server(login.this);
    SQLiteDatabase db=database.getReadableDatabase();
    Cursor c=db.query(DataBase_Server.TABLE, null, null, null, null, null, null);
    //startManagingCursor(c);
    c.moveToFirst();
    email=c.getString(c.getColumnIndex(DataBase_Server.EMAIL));
    password=c.getString(c.getColumnIndex(DataBase_Server.PASS));
    Toast.makeText(this,email+" hello "+password, Toast.LENGTH_SHORT).show();
}

代码中没有语法错误但是当我运行我的应用程序并单击我的登录按钮时,我得到一个强制关闭对话框,最终退出我的应用程序,在“logcat”中我看到一些异常,如“Unable”打开堆栈文件......访问被拒绝“等等。

logcat的:

09-20 00:44:06.755:E / AndroidRuntime(244):未捕获的处理程序:由于未捕获的异常而导致线程主要退出 09-20 00:44:06.775:E / AndroidRuntime(244):java.lang.IllegalStateException:在活动中找不到onClickLogin(View)方法 09-20 00:44:06.805:E / dalvikvm(244):无法打开堆栈跟踪文件'/data/anr/traces.txt':权限被拒绝

logcat的

还有一些错误: logcat:

09-20 00:44:06.755:E / AndroidRuntime(244):未捕获的处理程序:由于未捕获的异常而导致线程主要退出 09-20 00:44:06.775:E / AndroidRuntime(244):java.lang.IllegalStateException:在活动中找不到onClickLogin(View)方法 09-20 00:44:06.805:E / dalvikvm(244):无法打开堆栈跟踪文件'/data/anr/traces.txt':权限被拒绝 09-20 01:22:04.535:E / AndroidRuntime(352):未捕获的处理程序:由于未捕获的异常导致线程主要退出 09-20 01:22:04.555:E / AndroidRuntime(352):java.lang.IllegalStateException:无法执行活动的方法 09-20 01:22:04.555:E / AndroidRuntime(352):在android.view.View $ 1.onClick(View.java:2031) 09-20 01:22:04.585:E / dalvikvm(352):无法打开堆栈跟踪文件'/data/anr/traces.txt':权限被拒绝

2 个答案:

答案 0 :(得分:3)

您的方法称为

OnClickLogin

但是在您的XML布局文件中,您已将其声明为:

android:onClick="onClickLogin"

资本O错误。只需在班级中重命名您的方法:

public void onClickLogin(View btnLogin)

答案 1 :(得分:1)

检查拼写,我假设您在xml中指定了单击处理程序,我个人觉得非常容易出错。问题是该方法拼写为OnClickLogin,而您在xml中指定了onClickLogin(注意小写的“o”)。我个人更喜欢不在XML中指定clickhandler,而是通过

等代码指定它
Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickHandler(...).