2012-01-07 10 views
0

iveリストビューをデータベースからアンドロイドに入れるのに一週間ほど苦労しているが、大きな問題を抱えている人はここで助けてくれると嬉しいです。 // databasehelperクラスが得られない:アンドロイドのSQLITEデータベースからリストビューを作成する

package com.example; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHelper extends SQLiteOpenHelper{ 
public static final String DBNAME = "company.db";  
    public static final String ENAME="ename"; 
    public static final String ADD="addr"; 
    public static final String PNO="pno"; 
    public static final String FA="fa"; 
    public static final String tablename="company"; 


    public DatabaseHelper(Context context) { 
     super(context, DBNAME, null, 1); 
     // TODO Auto-generated constructor stub 
    } 
@Override 
public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL("CREATE TABLE company (_ID INTEGER PRIMARY KEY AUTOINCREMENT,ename TEXT,addr TEXT,pno TEXT,fa TEXT);"); 
} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    db.execSQL("DROP IF TABLE EXISTS company"); 
    onCreate(db); 
} 
} 

//ここでは、リストビューを作成するための努力をしているクラス package com.example;

import java.util.ArrayList; 

import android.app.ListActivity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteException; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.ArrayAdapter; 
import android.widget.TextView; 

public class Text extends ListActivity { 
private ArrayList<String> results = new ArrayList<String>(); 
private String tableName = DatabaseHelper.tablename; 
private SQLiteDatabase newDB; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     openAndQueryDatabase(); 

     displayResultList(); 
} 

private void displayResultList() { 
    // TODO Auto-generated method stub 
    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_2, results)); 
    getListView().setTextFilterEnabled(true); 
} 

private void openAndQueryDatabase() { 
    // TODO Auto-generated method stub 
    try { 
DatabaseHelper dbHelper = new  DatabaseHelper(this.getApplicationContext()); 

     newDB = dbHelper.getWritableDatabase(); 
     Cursor c = newDB.rawQuery("SELECT ENAME, PNO FROM " + 
       tableName, null); 

     if (c != null) { 
      if (c.moveToFirst()) { 
       do { 
        String ename = c.getString(c.getColumnIndex("ENAME")); 
        String addr = c.getString(c.getColumnIndex("PNO")); 
        results.add("Name: " + ename + ",Age: " + addr); 
       }while (c.moveToNext()); 
      } 
     }   
    } catch (SQLiteException se) { 
     Log.e(getClass().getSimpleName(), "Could not create or Open the database"); 
    } finally { 
     if (newDB != null) 
      newDB.execSQL("DELETE FROM " + tableName); 
      newDB.close(); 
    } 

} 
} 
+0

あなたが直面しているエラーや問題は何ですか? –

答えて

0

DBには何も追加しません。あなたはDBを設定するために何もinsert呼び出しをしていません。したがって、クエリを実行すると、空のカーソルが戻ってきます。何もあなたのresultsに追加されません。だから、リストビューは空です。

関連する問題