create listview from sqlite database

i have a database where i can create and delete new records. i want this records to be shown in a listview in another activity.

Database:

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;
}
}

Layout of listview:

<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 class:

  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"));           
        }
    });        
}

i would like to know what is the code for the activity class.. can someone please help me out. im very new to this android world.

Answers


For displaying all your item in list view first create Custom listView and fetch data from database and store in a 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();
}

send This arraylist to your class that extends BaseAdapter class and under getView() method set these values.


Assuming you just need the contents of your database to be displayed in the ListView, then check out this question:

https://stackoverflow.com/questions/11516340/how-to-on-refreshing-android-listfragment-listview-after-modifying-its-contents

The code there does exactly that and should point you in the right direction. Only thing is you might run in to trouble if you delete an item after the onItemClick.


Need Your Help

Setting MPMediaItem's artwork

objective-c ios cocoa-touch cocoa

I know I can retrieve an MPMediaItem's artwork by doing the following:

Customizing user module in zend framework2

php zend-framework zend-framework2

I am a zend frame work1 developer. I am trying to study zf2. But I came to know that zend1 and zend2 are entirely different. I am trying to build a simple application in which following features ne...