2012-07-17 48 views
0

我有一個數據庫,我可以創建和刪除新記錄。我希望將這些記錄顯示在另一個活動的列表視圖中。從sqlite數據庫創建列表視圖

數據庫:

public class DBHelper extends SQLiteOpenHelper { 
// Database Version 
private static final int DATABASE_VERSION = 1; 

// Database Name 
private static final String DATABASE_NAME = "spinnerExample"; 

// Labels table name 
private static final String TABLE_LABELS = "labels"; 

// Labels Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_NAME = "name"; 

public DBHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

// Creating Tables 
@Override 
public void onCreate(SQLiteDatabase db) { 
    // Category table create query 
    String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT)"; 
    db.execSQL(CREATE_CATEGORIES_TABLE); 
} 

// Upgrading database 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS); 

    // Create tables again 
    onCreate(db); 
} 

/** 
* Inserting new lable into lables table 
* */ 
public void insertLabel(String label){ 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(KEY_NAME, label); 

    // Inserting Row 
    db.insert(TABLE_LABELS, null, values); 
    db.close(); // Closing database connection 
} 

/** 
* Removing label 
* */ 
public void removeLabel(String label){ 
SQLiteDatabase db = this.getWritableDatabase(); 

ContentValues values = new ContentValues(); 
values.put(KEY_NAME, label); 

// Removing Row 
db.delete(TABLE_LABELS, KEY_NAME + "=?", new String[] {label}); 
db.close(); // Closing database connection 
} 

/** 
* Getting all labels 
* returns list of labels 
* */ 
public List<String> getAllLabels(){ 
    List<String> labels = new ArrayList<String>(); 

    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_LABELS; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      labels.add(cursor.getString(1)); 
     } while (cursor.moveToNext()); 
    } 

    // closing connection 
    cursor.close(); 
    db.close(); 

    // returning lables 
    return labels; 
} 
} 

列表視圖的佈局:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Modules" 
    android:layout_margin="10dp" 
    android:textStyle="bold" 
    android:textSize="30dp" 
    android:layout_gravity="center"/> 

<ListView 
    android:id="@+id/lst_module" 
    android:layout_width="match_parent" 
    android:layout_height="330dp" 
    android:layout_marginRight="7dp" 
    android:layout_marginLeft="7dp" 
    android:layout_marginTop="7dp" > 
</ListView> 

<Button 
    android:id="@+id/btn_edtmodule" 
    android:layout_width="fill_parent" 
    android:layout_height="64dp" 
    android:text="Edit Modules" 
    android:textStyle="bold" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp"/> 

</LinearLayout> 

Activity類:

public class Module extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.module); 

    Button editModule = (Button) findViewById(R.id.btn_edtmodule); 
    editModule.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent("sg.edu.tp.iit.mns.VotingAppMain"));   
     } 
    });   
} 

竟被我d想知道活動課的代碼是什麼。有人可以幫我解決問題。即時通訊這個Android世界非常新。

回答

1

爲了顯示你所有的項目列表視圖中第一個創建自定義的ListView和一個ArrayList的

Class Data{ 
    String name,Address; 
} 

ArrayList<Data>list=new ArrayList<Data>(); 

Cursor userListCursor = dbAdapter.fetchAllRecord(); 
startManagingCursor(userListCursor); 

while (!userListCursor.isAfterLast()) { 
    Data record=new Data(); 
    record.name=userListCursor.getString(0); 
    record.address=userListCursor.getString(1); 
    list.add(record); 
    userListCursor.moveToNext(); 
} 

獲取從數據庫和存儲數據發送這arraylist你的類擴展 BaseAdapter類和下getView()方法設置這些值。