简体   繁体   中英

How to compare data which is entered by user in EditText and retrieve result data in the EditText from sqlite database in android studio 2.0

I am learning android. I am trying to create an application that takes data from user in EditText. Compare that data into SQLite database and return data in another EditText.

After running my code application is closing ieForce Close. ie Unfortunately your application is closed. Please help me to compare and retrieve data from sqlite database and display it in EditText.

    My Code is:
DatabaseHelper Class:
     public Cursor getData() {
            SQLiteDatabase db = this.getWritableDatabase();
            String english = et1.getText().toString();

//Query to check data in database

Cursor cursor = db.rawQuery("select MSICTm_AutoTarget_Word from" + TABLE_NAME + "where MDICTm_Source_Word="+english, null);
            et2.setText("");
            if (cursor!=null) {
                cursor.moveToFirst();
                do {
                    String MSICTm_AutoTarget_Word = cursor.getString(cursor.getColumnIndex("MSICTm_AutoTarget_Word"));
                    et2.append("MSICTm_AutoTarget_Word"+cursor.getString(2)+cursor);
                } while (cursor.moveToNext());
            }
     return cursor;
            }         

Main Activity Class:

public void viewData() {
        b1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Cursor cursor = mydb.getData();
                if (cursor != null) {
                    if (cursor.moveToFirst()) {
                        do {
                            String MSICTm_AutoTarget_Word = cursor.getString(cursor.getColumnIndex("MSICTm_AutoTarget_Word"));
                            et2.append("MSICTm_AutoTarget_Word" + MSICTm_AutoTarget_Word + cursor);
                        }
                        while (cursor.moveToNext());
                    }
                }
            }
 });
    }

//Logcat

04-27 14:10:34.698 2420-2420/com.example.mcsipl_hplaptop240_1.language I/art: Not late-enabling -Xcheck:jni (already on)
04-27 14:10:34.826 2420-2420/com.example.mcsipl_hplaptop240_1.language W/System: ClassLoader referenced unknown path: /data/app/com.example.mcsipl_hplaptop240_1.language-1/lib/x86
04-27 14:10:44.248 2420-2420/com.example.mcsipl_hplaptop240_1.language W/System: ClassLoader referenced unknown path: /data/app/com.example.mcsipl_hplaptop240_1.language-1/lib/x86
04-27 14:10:45.466 2420-2420/com.example.mcsipl_hplaptop240_1.language W/art: Verification of android.support.v7.view.ActionMode android.support.v7.app.AppCompatDelegateImplV7.startSupportActionModeFromWindow(android.support.v7.view.ActionMode$Callback) took 369.473ms
04-27 14:10:45.677 2420-2426/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 104.833ms
04-27 14:10:46.390 2420-2430/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 525.430ms
04-27 14:10:46.398 2420-2430/com.example.mcsipl_hplaptop240_1.language I/art: Background sticky concurrent mark sweep GC freed 15945(1793KB) AllocSpace objects, 8(176KB) LOS objects, 66% free, 1257KB/3MB, paused 526.247ms total 537.371ms
04-27 14:10:46.713 2420-2426/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 137.656ms
04-27 14:10:47.051 2420-2420/com.example.mcsipl_hplaptop240_1.language W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
04-27 14:10:47.300 2420-2426/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 223.122ms
04-27 14:10:48.227 2420-2426/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 149.071ms
04-27 14:10:48.748 2420-2426/com.example.mcsipl_hplaptop240_1.language W/art: Suspending all threads took: 166.289ms
04-27 14:10:48.913 2420-2420/com.example.mcsipl_hplaptop240_1.language W/FileUtils: Failed to chmod(/data/user/0/com.example.mcsipl_hplaptop240_1.language/databases/LNGTRNS.db): android.system.ErrnoException: chmod failed: EPERM (Operation not permitted)
04-27 14:10:48.914 2420-2420/com.example.mcsipl_hplaptop240_1.language D/AndroidRuntime: Shutting down VM


                                                                                         --------- beginning of crash
04-27 14:10:48.914 2420-2420/com.example.mcsipl_hplaptop240_1.language E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                         Process: com.example.mcsipl_hplaptop240_1.language, PID: 2420
                                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mcsipl_hplaptop240_1.language/com.example.mcsipl_hplaptop240_1.language.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                             at android.os.Looper.loop(Looper.java:148)
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                                                                                             at com.example.mcsipl_hplaptop240_1.language.MainActivity.viewData(MainActivity.java:87)
                                                                                             at com.example.mcsipl_hplaptop240_1.language.MainActivity.onCreate(MainActivity.java:34)
                                                                                             at android.app.Activity.performCreate(Activity.java:6237)
                                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                                             at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                             at android.os.Looper.loop(Looper.java:148) 
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

您是否已在主要活动中初始化dbhelper类?

dbclass mydb=new dbclass();

Your error seems to be

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

The button b1 is not initialised at the time you're setting up the onClickListener in your viewData() method.

Initialize the button b1

b1 = (Button) findViewbyId(R.id.your_button_id);

before setting up the click listener

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM