2012-04-24 6 views
2

私は自分のアセットに保存したデータベースを使用してリストビューを作成しようとしています。私はそれまでのところデータベースを作成しているかどうかを調べることにした。私の現在の問題は、列を取得してリストビューで表示する方法を理解しようとしていることです。私の列は、あなたが理解していないコードがある場合に備えて、名前、位置、および部門です。私はhttp://saigeethamn.blogspot.com/2011/02/listview-of-data-from-sqlitedatabase.html からコードを使用しようとしています。もし誰かが私を助けてくれたら、本当に感謝します。データベースをappに読み込む/リストビューで表示する

編集:コードは、それは私にnullポインタ例外を与えて実行すると

public class Favorites extends ListActivity { 
     public static String tableName = "fac"; 
     private ListView lv; 
     SQLiteDatabase newDB; 
     private ArrayList<String> results = new ArrayList<String>(); 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.favorites); 

      openAndQueryDatabase(); 
      displayResultList(); 
     } 

     private void displayResultList() { 
      TextView tView = new TextView(this); 
      tView.setText("This data is retrieved from the database and only 4 " 
        + "of the results are displayed"); 
      getListView().addHeaderView(tView); 

      setListAdapter(new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, results)); 
      getListView().setTextFilterEnabled(true); 

     } 

     private void openAndQueryDatabase() { 
      try { 
       DataBaseHelper dbHelper = new DataBaseHelper(
         this.getApplicationContext()); 
       newDB = dbHelper.getWritableDatabase(); 
       Cursor c = newDB.rawQuery("SELECT name, position FROM " + tableName 
         + "where ", null); 

       if (c != null) { 
        if (c.moveToFirst()) { 
         do { 
          String name = c.getString(c.getColumnIndex("name")); 
          String position = c.getString(c 
            .getColumnIndex("position")); 
          results.add("name: " + name + ",Position " + position); 
         } while (c.moveToNext()); 
        } 
       } 
      } catch (SQLiteException se) { 
      } finally { 
       if (newDB != null) 
{ 
        newDB.execSQL("DELETE FROM " + tableName); 
       newDB.close(); 
      }} 

     } 
    } 

LogCat:

 04-24 04:43:19.064: E/AndroidRuntime(1644): FATAL EXCEPTION: main 
     04-24 04:43:19.064: E/AndroidRuntime(1644): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cerealBarApps/com.cerealBarApps.Faculty_tab}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cerealBarApps/com.cerealBarApps.Favorites}: java.lang.NullPointerException 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.access$1500(ActivityThread.java:132) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.os.Handler.dispatchMessage(Handler.java:99) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.os.Looper.loop(Looper.java:143) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.main(ActivityThread.java:4196) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at java.lang.reflect.Method.invokeNative(Native Method) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at java.lang.reflect.Method.invoke(Method.java:507) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at dalvik.system.NativeStart.main(Native Method) 
     04-24 04:43:19.064: E/AndroidRuntime(1644): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cerealBarApps/com.cerealBarApps.Favorites}: java.lang.NullPointerException 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:1651) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:656) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.widget.TabHost.setCurrentTab(TabHost.java:326) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.widget.TabHost.addTab(TabHost.java:216) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at com.cerealBarApps.Faculty_tab.onCreate(Faculty_tab.java:55) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780) 
     04-24 04:43:19.064: E/AndroidRuntime(1644):  ... 11 more 
     04-24 04:43:19.064: E/AndroidRuntime(1644): Caused by: java.lang.NullPointerException 
04-24 04:43:19.064: E/AndroidRuntime(1644):  at com.cerealBarApps.Favorites.openAndQueryDatabase(Favorites.java:63) 
04-24 04:43:19.064: E/AndroidRuntime(1644):  at com.cerealBarApps.Favorites.onCreate(Favorites.java:25) 
04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
04-24 04:43:19.064: E/AndroidRuntime(1644):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780) 

申し訳

+0

はあなたにNullPointer例外トレースを投稿することができますか? – vinodn

+0

他に何か必要があれば私に連絡してください –

+1

あなたは私が見たいと思った場所に正確にログを切り捨てました。 nullpointerを引き起こしているcom.cerealBarApps.Favoritesクラスの行番号を知りたかった – vinodn

答えて

0

以下なステートメントでは...プラザ これを試してみてください、入れてください'' 'キーワードの前に' '旧

Cursor c = newDB.rawQuery("SELECT name, position FROM " + tableName + "where ", null); 

Cursor c = newDB.rawQuery("SELECT name, position FROM " + tableName + " where ", null); 
+0

問題は依然として存在します。 –

+0

DBHelperクラスも正常に動作しているかどうかを確認してください。 SQLiteDatabaseインスタンスを保持しているかどうかを確認してください。 –

+0

私のdb helperクラスは、アプリケーションの開始時に電話機にデータベースを作成します。私のテーブルは、私の資産に保存されたファイルですでに定義されています。私がする必要があるのは、このファイルを読んで表示に表示することです –

関連する問題