0

这是我从数据库中读取数据的代码。在这里,我只是接收值并使用“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”中我看到一些异常,如“无法打开堆栈文件......访问被拒绝”等等等等。

日志猫:

09-20 00:44:06.755:E/AndroidRuntime(244):未捕获的处理程序:线程主因未捕获的异常而退出 09-20 00:44:06.775:E/AndroidRuntime(244):java.lang.IllegalStateException:不能在活动 09-20 00:44:06.805 中找到方法 onClickLogin(View): E/dalvikvm(244): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

日志猫

仍然出现更多错误:logcat:

09-20 00:44:06.755:E/AndroidRuntime(244):未捕获的处理程序:线程主因未捕获的异常而退出 09-20 00:44:06.775:E/AndroidRuntime(244):java.lang.IllegalStateException:不能在活动 09-20 00:44:06.805 中找到方法 onClickLogin(View):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':权限被拒绝

4

2 回答 2

3

你的方法被称为

OnClickLogin

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

android:onClick="onClickLogin"

大写 O 错误。只需在您的课程中重命名您的方法:

public void onClickLogin(View btnLogin)

于 2012-09-19T19:39:40.623 回答
1

检查拼写,我假设您在 xml 中指定了单击处理程序,我个人认为这很容易出错。错误是该方法是拼写的OnClickLogin,而您在 xml 中指定onClickLogin(注意小写的“o”)。我个人更喜欢不在 XML 中指定 clickhandler,而是通过代码指定它,例如

Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickHandler(...).
于 2012-09-19T19:40:41.640 回答