2017-11-16 2 views
0

Ich habe zwei Klassen nämlich Produkt und Kategorie, In der Produktklasse habe ich einen Spinner, die Daten aus der Kategorie-Klasse lesen. ich will, dass, wenn eine Kategorie aus spinnern wählen, id aus dem Verfahren erhalten, das in categorydbAdapter ist, aber ich habe einen Fehler in dieser Zeile:nicht in der Lage, ausgewählte Artikel aus Spinner Daten aus einer anderen Klasse geladen

get_cat_id = categoryDBAdapter.backcatID(selectedItem); 

was das Problem s? Hier ist mein Code:

spinner = (Spinner) insert_product_dialog.findViewById(R.id.spinner_c); 

      categoryDBAdapter = new CategoryDBAdapter(getApplicationContext()); 


      ArrayList<Category> listcat = categoryDBAdapter.display_categories(); 

      ArrayAdapter<Category> adapter = 
        new ArrayAdapter<Category>(getApplicationContext(), R.layout.snipper_dropdown, listcat); 
      adapter.setDropDownViewResource(R.layout.snipper_dropdown); 

      spinner.setAdapter(adapter); 

      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

        String selectedItem = parent.getItemAtPosition(position).toString(); 

        get_cat_id = categoryDBAdapter.backcatID(selectedItem); 

        test.setText(get_cat_id); 

       } 

       @Override 
       public void onNothingSelected(AdapterView<?> parent) { 

       } 
      }); 

und Verfahren in categorydbadapter:

public int backcatID(String CatName) { 

    int back_id; 
    String query = "select * from " + TBL_CAT+" where "+KEY_TITLE_cat+"="+CatName; 
    SQLiteDatabase database = this.getReadableDatabase(); 
    Cursor cursor = database.rawQuery(query, null); 
    if (cursor.moveToNext()) { 
     back_id = cursor.getInt(0); 
    } 
    else 
    { 
     back_id = 1000; 
    } 

    return back_id; 
} 

und Fehler:

11-16 12:19:51.259 3148-3148/com.myshop.navmenu E/AndroidRuntime: FATAL EXCEPTION: main 
                   Process: com.myshop.navmenu, PID: 3148 
                   android.database.sqlite.SQLiteException: no such column: phone (code 1): , while compiling: select * from tbl_category where title=phone 
                    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
                    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) 
                    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 
                    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
                    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
                    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
                    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 
                    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318) 
                    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1257) 
                    at com.myshop.navmenu.MyDatabase.CategoryDBAdapter.backcatID(CategoryDBAdapter.java:63) 
                    at com.myshop.navmenu.Activity.ProductManagerActivity$1$3.onItemSelected(ProductManagerActivity.java:134) 
                    at android.widget.AdapterView.fireOnSelected(AdapterView.java:931) 
                    at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:920) 
                    at android.widget.AdapterView.-wrap1(AdapterView.java) 
                    at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:890) 
                    at android.os.Handler.handleCallback(Handler.java:751) 
                    at android.os.Handler.dispatchMessage(Handler.java:95) 
                    at android.os.Looper.loop(Looper.java:154) 
                    at android.app.ActivityThread.main(ActivityThread.java:6119) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
    11-16 12:19:51.339 1590-1604/system_process W/ActivityManager: Force finishing activity com.myshop.navmenu/.Activity.ProductManagerActivity 
    11-16 12:19:51.563 2256-2911/com.google.android.gms W/PlatformStatsUtil: Could not retrieve Usage & Diagnostics setting. Giving up. 
    11-16 12:19:51.675 1293-1326/? D/gralloc_ranchu: gralloc_alloc: format 1 and usage 0x900 imply creation of host color buffer 
+0

Ihren Logcat-Fehler aktualisieren? –

+0

Dies ist Ihr SQL-Fehler. –

Antwort

1

verwenden.

public int backcatID(String CatName) { 

     int back_id; 
     String query = "select * from " + TBL_CAT+" where " + KEY_TITLE_cat + "=\""+ CatName + "\""; 
     SQLiteDatabase database = this.getReadableDatabase(); 
     Cursor cursor = database.rawQuery(query, null); 
     if (cursor.moveToNext()) { 
      back_id = cursor.getInt(0); 
     } 
     else 
     { 
      back_id = 1000; 
     } 

     return back_id; 
    } 
Verwandte Themen