رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام خسته نباشین

میخوام تو بانکم اطلاعات درج کنم هر کار میکنم نمیشه :S

بانکم اکسترنال هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اینکار براحتی انجام میشود..این پست رو با دقت انجام بدین تا اطلاعات در جدول ثبت شود:

1-ابتدا یک کلاس برای دیتابیس بسازید:

public class DatabaseHelper extends SQLiteOpenHelper {    public static final String db_demo = "DATA1.db";    public static final String tbl_sdcard = "tbl_sdcard";    public static String name = "name";    // method to create or connect to a database    public DatabaseHelper(Context context) {        super(context, db_demo, null, 1);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("CREATE TABLE " + tbl_sdcard + " (" + name+ " TEXT );" );    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        db.execSQL("DROP TABLE IF EXISTS  " + tbl_sdcard);        onCreate(db);    }}

2-سپس در اکتییوتی خود باید اینکارو کنید

چند متغیر سراسری از شی هایی که برای دیتابیس استفاده میشود را بنویسید

DatabaseHelper dbh;    SQLiteDatabase db;    ContentValues cv;

3-سپس در ocnreate()

@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        dbh=new DatabaseHelper(getApplicationContext());{

4- یک تابع برای افزودن اطلاعات به جدول:

private void add_db(String name) {            db = dbh.getWritableDatabase();            cv = new ContentValues();            try {                cv.put(dbh.name, name);                                db.insertOrThrow(dbh.tbl_sdcard, null, cv);            } catch (Exception e) {                // TODO: handle exception                Toast.makeText(getApplicationContext(), e.toString(),                        Toast.LENGTH_LONG).show();            } finally {                db.close();            }        }

5-حالا در هرجایی که میخواهید اطلاعات دخیره شوند،این تابع را فقط فراخوانی کنید

add_db("salam"");

یا

add_db(txt_name.getText.toString());
لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...

سلام

می خواستم ببینم روشی هست که بتونیم query ها رو مستقیم روی جداول اجرا کنیم و یه دیتا آداپتر خروجی بگیریم .

یعنی اینکه با یه تابع هر query که دادیم اجرا بشه ، هم select هم insert هم update و  هم delete

توی C#  و َAsp.net این کار رو کردم و شدنیه ، می خوام ببینم اینجا میشه انجام داد یا نه ؟

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله،اینکار براحتی قابل انجام میباشد.

بدین صورت میتوانید عمل کنید :

ListAdapter adapter;db = dbh.getReadableDatabase();        Cursor cursors = db.rawQuery("select * from " + dbh.tbl_file, null);                ArrayList> CHANNELList;        CHANNELList = new ArrayList>();            for (int i = 0; i < cursors.getCount(); i++) {            cursors.moveToNext();            HashMap map = new HashMap();            name = cursors.getString(cursors.getColumnIndex("title"));            date = cursors.getString(cursors.getColumnIndex("date"));            map.put("title", name);            map.put("date", date);                CHANNELList.add(map);        }                adapter = new listviewAdapter(this, CHANNELList);                lst_note.setAdapter(adapter);

اطلاعات در Adapter قرار میگیرند ، و میتوانید مانند این تکه بسته به کاربرد کارتان  از استفاده کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اره اجرا میشه.شما وقتی از Cusrsor استفاده میکنید، و برای  db هم   getWritableDatabase تعریف میکنید میتوانید درج هم انجام دهید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله اون قسمت رو نمیشناسه برای نمونه براتون گذاشتم،

adapter = new listviewAdapter(this, CHANNELList)

اون قسمت برای این میباشد که اطلاعات را روی یک لیست سفارشی نمایش دهد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بخاطر اینه  که  ما دو تا فیلد داریم از اطلاعات  بدین صورت کدهارو تغییر بدین :

ListAdapter adapter;db = dbh.getReadableDatabase();        Cursor cursors = db.rawQuery("select * from " + dbh.tbl_file, null);               ArrayList array_list = new ArrayList();           for (int i = 0; i < cursors.getCount(); i++) {            cursors.moveToNext();                       name = cursors.getString(cursors.getColumnIndex("title"));                    array_list.add(name);        }      lst_note.setAdapter(new ArrayAdapter(this,            android.R.layout.simple_list_item_1,array_list

)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون حل شد .

حالا اگر بیشتر از یک فیلد داشته باشیم باید چیکار کنیم ؟

اگر بخوایم روی هر کدوم از item های listview - رویداد onclick رو بنویسم باید چیکار کنیم ؟

در واقع من می خوام یک منوی داینامیک درست کنم که از دیتابیس پُر میشه ، پیشنهاد شما چیه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب برای لیستی که میخواهید باید یک لیست سفارشی بسازید و اطلاعات داخل مثلا Hashmap را در فیلدهایی قرار دهید،سپس در اطلاعات Hashmap را در فیلدهای لیست ویو قرار میدهید.

صبر کنید امشب یک آموزش کامل برای لیست سفارشی در اندروید بنویسم،چون به مشکل بسیار بزرگی برای دوستان پیش اومده.امیدوارم با این آموزش کوچیک مشکلی رو حل کرده باشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام من تمام این کارها رو انجام دادم از این خط ایراد میگیره

dbh=new DatabaseHelper(getApplicationContext());

 متن خطا :

Cannot instantiate the type InternetTest.DatabaseHelper

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 3 هفته بعد...

سلام

من با استفاده از آموزش لیست ویو سفارشی و دیتابیس برنامه ای نوشتم ، برنامه خطا نداره اما لیست ویو رو خالی نشون میده .

آپلودش کردم ، لطف می کنید ببینید مشکلش چیه ؟

ممنون

http://s4.picofile.com/file/7852755371/MashhadPezeshk.rar.html

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان اگه میشه لطف کنید و این برنامه ی من و بررسی کنید ، تا بتونیم با کمک هم مشکلش رو حل کنیم .

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کدتان را بررسی نمودم، شما وقتی میخواهید از یک دیتابیس آماده در برنامه تون استفاده کنید ،باید آن را به SDcard کپی کنید. در تاپیک زیر در انجمن قرار گرفته است این مشکل برطرف شده است :

http://www.p30droid.com/showthread.php?tid=386
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون اون مشکلم حل شد

الان توی اون لیست ویو سفارشی یک مشکل دارم .

اونم اینه که لیست ویو به طور همزمان فقط یک سطر و نمایش میده و برای دیدن بقیه ی سطرها باید اسکرول کرد ، طول و عرض رو mache parent و fill parent کردم اما بازم درست نشد .

مشکل چیه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب نباید اندازه لیست سفارشی را match_parent بگذارید.دقیقا باید مانند مثال موجود که مدیر سایت توضیح داده اند عمل کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...