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」に「スタックを開くことができません」などの例外が表示されます。ファイル......アクセス拒否」など。

logcat:

09-20 00:44:06.755:E / AndroidRuntime(244):キャッチされていないハンドラー:キャッチされていない例外のためにスレッドメインが終了します09-20 00:44:06.775:E / AndroidRuntime(244):java.lang.IllegalStateException:できませんでしたアクティビティ09-2000:44:06.805でメソッドonClickLogin(View)を検索します: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:できませんでしたアクティビティ09-2000: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 でクリック ハンドラーを指定したと思いますが、個人的にはエラーが発生しやすいと思います。バグは、xml でOnClickLogin指定onClickLoginした (小文字の「o」に注意してください) のとは対照的に、メソッドのスペルが間違っていることです。個人的には、クリックハンドラを XML で指定するのではなく、次のようなコードで指定することを好みます。

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