버튼 속성.
버튼 btnLogin의 자바 함수
public void LoginT(View v){
Cursor c = db.rawQuery("select * from Users where username=? and password=?", new String[] {username,password});
username = c.getString(0);
password = c.getString(1);
Toast.makeText(this, (String)username, Toast.LENGTH_LONG).show();
}
로그인을 위해 이것을 사용할 것이지만 값을 표시하는 것을 테스트하고 있지만 아무 일도 일어나지 않습니다.
다음은 logcat입니다.
03-11 06:15:38.008: E/AndroidRuntime(1522): FATAL EXCEPTION: main
03-11 06:15:38.008: E/AndroidRuntime(1522): java.lang.IllegalStateException: Could not execute method of the activity
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.view.View$1.onClick(View.java:3591)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.view.View.performClick(View.java:4084)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.view.View$PerformClick.run(View.java:16966)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.os.Handler.handleCallback(Handler.java:615)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.os.Handler.dispatchMessage(Handler.java:92)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.os.Looper.loop(Looper.java:137)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.app.ActivityThread.main(ActivityThread.java:4745)
03-11 06:15:38.008: E/AndroidRuntime(1522): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 06:15:38.008: E/AndroidRuntime(1522): at java.lang.reflect.Method.invoke(Method.java:511)
03-11 06:15:38.008: E/AndroidRuntime(1522): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-11 06:15:38.008: E/AndroidRuntime(1522): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-11 06:15:38.008: E/AndroidRuntime(1522): at dalvik.system.NativeStart.main(Native Method)
03-11 06:15:38.008: E/AndroidRuntime(1522): Caused by: java.lang.reflect.InvocationTargetException
03-11 06:15:38.008: E/AndroidRuntime(1522): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 06:15:38.008: E/AndroidRuntime(1522): at java.lang.reflect.Method.invoke(Method.java:511)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.view.View$1.onClick(View.java:3586)
03-11 06:15:38.008: E/AndroidRuntime(1522): ... 11 more
03-11 06:15:38.008: E/AndroidRuntime(1522): Caused by: java.lang.IllegalArgumentException: the bind value at index 2 is null
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
03-11 06:15:38.008: E/AndroidRuntime(1522): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
03-11 06:15:38.008: E/AndroidRuntime(1522): at com.example.twistedfatetraining.Login.LoginT(Login.java:29)
03-11 06:15:38.008: E/AndroidRuntime(1522): ... 14 more
java.lang.IllegalArgumentException : 색인 2의 바인드 값이 널입니다.
문제는 쿼리의 선택 인수에 있습니다. 비밀번호가 null 일 수 있습니다.
쿼리를 실행하기 전에 입력 값을 확인하십시오.
if (username == null || password == null) {
// show dialog or toast
return
}
Cursor c = db.rawQuery("select * from Users where username=? and password=?", new String[] {username, password});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다