Reputation: 43
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.
Upvotes: 0
Views: 5726
Reputation: 2284
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.
Upvotes: 1
Reputation: 46
Assuming you just need the contents of your database to be displayed in the ListView, then check out this question:
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.
Upvotes: 0