نمایش اطلاعات دیتابیس در لیست ویو
سلام.
یه برنامه ساده دارم که یک دیتابیس نوشتم ک امکان insert و select و update و delete رو داره.
میخوام اطلاعات درج شده توی دیتا بیس رو تو یه اکتیویتی دیگه تو لیست ویو نمایش بدم.
ممنون میشم کمکم کنین
این کدهای کلاس DBHelper هستش :
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "MyDB", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table Cars(ID integer primary key,Name text,color text,price text)");
}
public void insertdatabase(String name, String color, String st_price) {
ContentValues cv = new ContentValues();
cv.put("Name", name);
cv.put("Color", color);
cv.put("Price", st_price);
SQLiteDatabase db = getWritableDatabase();
db.insert("Cars", null, cv);
db.close();
}
public Bundle selectddatabase(Long id) {
SQLiteDatabase db = getReadableDatabase();
Cursor cur;
cur = db.rawQuery("select * from Cars", null);
Bundle b = new Bundle();
if (cur.moveToFirst()) {
b.putLong("id", cur.getLong(0));
b.putString("name", cur.getString(1));
b.putString("color", cur.getString(2));
b.putString("price", cur.getString(3));
} else {
b.putLong("id", -1);
b.putString("name", "Not Found");
b.putString("color", "Not Found");
b.putString("price", "Not Found");
}
cur.close();
db.close();
return b;
}
public void updatedatabase(Long id, String et_name, String et_color, String et_price) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", et_name);
cv.put("color", et_color);
cv.put("price", et_price);
db.update("Cars", cv, "id = " + id, null);
db.close();
}
public void deletedatabase(Long id) {
SQLiteDatabase db = getWritableDatabase();
db.delete("Cars", "id = " + id, null);
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
این هم کدهای صفحه 4 عمل درج و سرچ و ...
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class AddCar extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void SELECT(View v) {
DBHelper db = new DBHelper(this);
EditText et_id = (EditText) findViewById(R.id.et_id);
Long id;
try {
id = Long.parseLong(et_id.getText().toString());
}
catch (Exception e) {
id = (long) 0;
}
Bundle b = db.selectddatabase(id);
EditText et_name = (EditText) findViewById(R.id.et_name);
EditText et_color = (EditText) findViewById(R.id.et_color);
EditText et_price = (EditText) findViewById(R.id.et_price);
et_name.setText(b.getString("name"));
et_color.setText(b.getString("color"));
et_price.setText(b.getString("price"));
}
public void INSERT(View v) {
EditText et_name = (EditText) findViewById(R.id.et_name);
EditText et_color = (EditText) findViewById(R.id.et_color);
EditText et_price = (EditText) findViewById(R.id.et_price);
String st_name = et_name.getText().toString();
String st_color = et_color.getText().toString();
String st_price = String.valueOf(et_price.getText());
DBHelper dbh = new DBHelper(this);
dbh.insertdatabase(st_name, st_color, st_price);
}
public void UPDATE(View v) {
DBHelper dbh = new DBHelper(this);
EditText et_id = (EditText) findViewById(R.id.et_id);
EditText et_name = (EditText) findViewById(R.id.et_name);
EditText et_color = (EditText) findViewById(R.id.et_color);
EditText et_price = (EditText) findViewById(R.id.et_price);
String st_name = et_name.getText().toString();
String st_color = et_color.getText().toString();
String st_price = String.valueOf(et_price.getText());
Long id;
try {
id = Long.parseLong(et_id.getText().toString());
}
catch (Exception e) {
id = (long) 0;
}
dbh.updatedatabase(id, st_name, st_color, st_price);
}
public void DELETE(View v) {
DBHelper dbh = new DBHelper(this);
EditText et_id = (EditText) findViewById(R.id.et_id);
Long id;
try {
id = Long.parseLong(et_id.getText().toString());
}
catch (Exception e) {
id = (long) 0;
}
dbh.deletedatabase(id);
}
}
برای نشان دادن اطلاعات در لیست ویو به این صورت عمل کنید یه متد تو کلاس دیتا بیستون مثل زیر بنویسید
public String[] returnitems(String table, String fieldName) {
ArrayList<String> temp = new ArrayList<String>();
android.database.Cursor cursor = mydb.rawQuery("SELECT " + fieldName + " FROM " + table , null);
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
temp.add(cursor.getString(cursor.getColumnIndex(fieldName)));
cursor.moveToNext();
}
String[] listItems = temp.toArray(new String[temp.size()]);
cursor.close();
return listItems;
}
بعد طبق آموزشای استاد پیش برین برای پر کردن لیست ویو کدایی که پایین گذاشتم هم بهتون کمک می کنه
db = new DataBase(this);
db.useable();
ListView lstContent = (ListView) findViewById(R.id.lstContent);
ArrayList<Struct> mainList = new ArrayList<Struct>();
mainList.clear();
db.open();
String[] listItems = db.returnItems("fieldTest","tableNameTest");
db.close();
mainList.clear();
for (int i = 0; i < (listItems.length); i++) {
Struct list = new Struct();
list.title = listItems[i];
mainList.add(list);
}
adapterMain = new AdapterMain(mainList);
adapterMain.notifyDataSetChanged();
lstContent.setAdapter(adapterMain);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .