lundi 25 mai 2015

getQuery from SQLiteDatabase while afterTextChanged() in an addTextChangedListener()

After sevral trys I gotta admit I'm realy not comftorable with SQLite in Android yet, so any help will be nice and I am greatful for it. I've created a testdb with some enititys and where able to load it via the assets-folder. the DB's only use will be to read a certain entity from it after the text on a EditText-Field has changed.

Like I said: I'm new with using DB's in Android but I need this for an upcoming Project so...

    adm = (EditText) fragLayout.findViewById(R.id.input_ADM);
    land = (EditText) fragLayout.findViewById(R.id.input_Land);
    land.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            adm.setText(getSomethingFromDB(land.getText().toString()));
        }
    });

public String getSomethingFromDB(String land) {
    String query = "SELECT adm FROM adm_table WHERE ktype='OEM' AND land=?";
    String ADM = "";
    dbhelper = new DBHelper(getActivity());

    Cursor c;

    try {
        dbhelper.createDataBase();
        dbhelper.openDataBase();
        c = dbhelper.getReadableDatabase().rawQuery(query,
                new String[] { land });
        if (c.moveToFirst()) {
            ADM = c.getString(c.getColumnIndex("adm"));
        }
        c.close();
        dbhelper.close();
    } catch (IOException e) {
        throw new Error("Datenbank konnte nicht erstellt werden");
    } catch (SQLException e) {
        throw e;
    }

    return ADM;
}

EDIT: here'S the logCat, the table IS there! I can select it with the console

05-25 14:04:18.060: I/SqliteDatabaseCpp(3756): sqlite returned: error code = 1, msg = no such table: adm_table, db=/data/data/com.example.leadeister/databases/test.db 05-25 14:04:18.060: D/AndroidRuntime(3756): Shutting down VM 05-25 14:04:18.060: W/dalvikvm(3756): threadid=1: thread exiting with uncaught exception (group=0x2b542210) 05-25 14:04:18.070: E/AndroidRuntime(3756): FATAL EXCEPTION: main 05-25 14:04:18.070: E/AndroidRuntime(3756): android.database.sqlite.SQLiteException: no such table: adm_table: , while compiling: SELECT adm FROM adm_table WHERE ktype='OEM' AND land=? 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:68) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:127) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:94) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:53) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1538) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.example.leadeister.LeadCreator.getSomethingFromDB(LeadCreator.java:355) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.example.leadeister.LeadCreator$1.afterTextChanged(LeadCreator.java:117) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.widget.TextView.sendAfterTextChanged(TextView.java:7840) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:8242) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.sendTextHasChanged(SpannableStringBuilder.java:900) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:390) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:266) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:443) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:216) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:29) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:90) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:45) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:151) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:352) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:132) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.widget.TextView.doKeyDown(TextView.java:5623) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.widget.TextView.onKeyDown(TextView.java:5445) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.KeyEvent.dispatch(KeyEvent.java:2558) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.View.dispatchKeyEvent(View.java:5523) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1347) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1898) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1380) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.app.Activity.dispatchKeyEvent(Activity.java:2324) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1825) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3327) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2597) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.os.Handler.dispatchMessage(Handler.java:99) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.os.Looper.loop(Looper.java:137) 05-25 14:04:18.070: E/AndroidRuntime(3756): at android.app.ActivityThread.main(ActivityThread.java:4441) 05-25 14:04:18.070: E/AndroidRuntime(3756): at java.lang.reflect.Method.invokeNative(Native Method) 05-25 14:04:18.070: E/AndroidRuntime(3756): at java.lang.reflect.Method.invoke(Method.java:511) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-25 14:04:18.070: E/AndroidRuntime(3756): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-25 14:04:18.070: E/AndroidRuntime(3756): at dalvik.system.NativeStart.main(Native Method)

Aucun commentaire:

Enregistrer un commentaire