PDA

View Full Version : مشکل در دیتابیس (SQLite )



mehdipoorajab
پنج شنبه 26 تیر 1393, 21:08 عصر
سلام
من میخوام اطلاعات دیتابیسم رو بریزم تو listview ولی هر کاری کردم نشد ارور میده

کلاس database handeler

package com.exdple.test1;


import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

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

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";

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

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_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_CONTACTS);

// Create tables again
onCreate(db);
}

/**
* All CRUD(Create, Read, Update, Delete) Operations
*/

// Adding new contact
void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName()); // Contact Name
values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone

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

// Getting single contact
Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();

Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
// return contact
return contact;
}

// Getting All Contacts
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;

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

// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0) ));
contact.setName(cursor.getString(1));
contact.setPhoneNumber(cursor.getString(2));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}

// return contact list
return contactList;
}

// Updating single contact
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());

// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}

// Deleting single contact
public void deleteContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
db.close();
}


// Getting contacts Count
public int getContactsCount() {
String countQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();

// return count
return cursor.getCount();
}

}


اینم کلاس Contact

package com.exdple.test1;

public class Contact {

//private variables
int _id;
String _name;
String _phone_number;

// Empty constructor
public Contact(){

}
// constructor
public Contact(int id, String name, String _phone_number){
this._id = id;
this._name = name;
this._phone_number = _phone_number;
}

// constructor
public Contact(String name, String _phone_number){
this._name = name;
this._phone_number = _phone_number;
}
// getting ID
public int getID(){
return this._id;
}

// setting id
public void setID(int id){
this._id = id;
}

// getting name
public String getName(){
return this._name;
}

// setting name
public void setName(String name){
this._name = name;
}

// getting phone number
public String getPhoneNumber(){
return this._phone_number;
}

// setting phone number
public void setPhoneNumber(String phone_number){
this._phone_number = phone_number;
}
}


می خوام با استفاده از تابع getAllContacts() اطلاعات دیتابیس رو بریزم تو listview

کمک کنید :((
:افسرده::ناراحت:

mehdipoorajab
پنج شنبه 26 تیر 1393, 23:03 عصر
اینم ارورش :( - لطفا کمک کنید !!!


07-17 13:41:37.206: E/AndroidRuntime(1360): FATAL EXCEPTION: main
07-17 13:41:37.206: E/AndroidRuntime(1360): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exdple.test1/com.exdple.test1.Main}: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2211)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2261)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread.access$600(ActivityThre ad.java:141)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1256)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.os.Handler.dispatchMessage(Handler.java:99 )
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.os.Looper.loop(Looper.java:137)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread.main(ActivityThread.jav a:5103)
07-17 13:41:37.206: E/AndroidRuntime(1360): at java.lang.reflect.Method.invokeNative(Native Method)
07-17 13:41:37.206: E/AndroidRuntime(1360): at java.lang.reflect.Method.invoke(Method.java:525)
07-17 13:41:37.206: E/AndroidRuntime(1360): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
07-17 13:41:37.206: E/AndroidRuntime(1360): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
07-17 13:41:37.206: E/AndroidRuntime(1360): at dalvik.system.NativeStart.main(Native Method)
07-17 13:41:37.206: E/AndroidRuntime(1360): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.database.AbstractCursor.checkPosition(Abst ractCursor.java:424)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.database.AbstractWindowedCursor.checkPosit ion(AbstractWindowedCursor.java:136)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.database.AbstractWindowedCursor.getString( AbstractWindowedCursor.java:50)
07-17 13:41:37.206: E/AndroidRuntime(1360): at com.exdple.test1.DatabaseHandler.getContact(Databa seHandler.java:79)
07-17 13:41:37.206: E/AndroidRuntime(1360): at com.exdple.test1.Main.onCreate(Main.java:56)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.Activity.performCreate(Activity.java:5 133)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1087)
07-17 13:41:37.206: E/AndroidRuntime(1360): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2175)
07-17 13:41:37.206: E/AndroidRuntime(1360): ... 11 more

poorman
پنج شنبه 26 تیر 1393, 23:43 عصر
سلام

الان این اروری که شما گذاشتید مال تابع getContact هست نه مال تابع getAllContact

ارور داره میگه هیچ نتیجه ای توی cursor وجود نداره و شما میخواین ازش اطلاعات بخونین که کاملا درسته

شما توی تابع getContact دارید چک میکنید اگر cursor != null که شرط غلطی هست، چک کنید اگر cursor.moveToFirst بعد درصورتی که شرط درست بود اطلاعات رو بخونید

تابع getAllContact هیچ خطایی از نظر کذ نویسی نداشت تا جایی که دیدم

mehdipoorajab
پنج شنبه 26 تیر 1393, 23:50 عصر
سلام

الان این اروری که شما گذاشتید مال تابع getContact هست نه مال تابع getAllContact

ارور داره میگه هیچ نتیجه ای توی cursor وجود نداره و شما میخواین ازش اطلاعات بخونین که کاملا درسته

شما توی تابع getContact دارید چک میکنید اگر cursor != null که شرط غلطی هست، چک کنید اگر cursor.moveToFirst بعد درصورتی که شرط درست بود اطلاعات رو بخونید

تابع getAllContact هیچ خطایی از نظر کذ نویسی نداشت تا جایی که دیدم
سلام

ممنون که جواب دادی

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

mehdipoorajab
پنج شنبه 26 تیر 1393, 23:59 عصر
سلام

الان این اروری که شما گذاشتید مال تابع getContact هست نه مال تابع getAllContact

ارور داره میگه هیچ نتیجه ای توی cursor وجود نداره و شما میخواین ازش اطلاعات بخونین که کاملا درسته

شما توی تابع getContact دارید چک میکنید اگر cursor != null که شرط غلطی هست، چک کنید اگر cursor.moveToFirst بعد درصورتی که شرط درست بود اطلاعات رو بخونید

تابع getAllContact هیچ خطایی از نظر کذ نویسی نداشت تا جایی که دیدم

alan ba in dastor etelat ro toye logcat neshoon mide ha


List<Contact> contacts = db.getAllContacts();

for (Contact cn : contacts) {
String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
// Writing Contacts to log
Log.d("Name: ", log);


vali khoob chejoori berizam to list view :(

poorman
جمعه 27 تیر 1393, 00:01 صبح
نمونه کد توی انجمن زیاده دوست عزیز

توی نمونه برنامه های آماده هم هست

باید اطلاعات رو از cursor بریزید داخل آرایه یا لیست

بعدش یک کلاس آداپتر داشته باشید که اینا رو بفرستید اونجا و بعد آداپتر لیست ویو رو ست کنید

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

mehdipoorajab
جمعه 27 تیر 1393, 00:09 صبح
نمونه کد توی انجمن زیاده دوست عزیز

توی نمونه برنامه های آماده هم هست

باید اطلاعات رو از cursor بریزید داخل آرایه یا لیست

بعدش یک کلاس آداپتر داشته باشید که اینا رو بفرستید اونجا و بعد آداپتر لیست ویو رو ست کنید

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

پیدا نکردم

یعنی چیزی ک ب کد های من بخوره پیدا نکردم :(

اخه تابع getAllContacts() من نوعش list<Contact> هست و نمی دونم چ جوری باهاش کار کنم

نمونه هم زیاد دیدم ولی بازم نشد :(

poorman
جمعه 27 تیر 1393, 00:19 صبح
خب عیب نداره شما همون کلاس آداپتر رو تغییر بده به صورتی که ورودیش از نوع list<contact> باشه

بعدش توی آداپتر تابع getView میگی مثلا

txt1.setText(contactList.get(position).getName());

دیگه اینقد باهاش سر و کله بزنید تا درست شه

mehdipoorajab
جمعه 27 تیر 1393, 00:28 صبح
خب عیب نداره شما همون کلاس آداپتر رو تغییر بده به صورتی که ورودیش از نوع list<contact> باشه

بعدش توی آداپتر تابع getView میگی مثلا

txt1.setText(contactList.get(position).getName());


دیگه اینقد باهاش سر و کله بزنید تا درست شه


:D سر و کله زیاد زدم ولی :D

من میخوام تو استایل پیشفرض اندروید نشون بدم !!!
قفط نام هاش رو نشون بدم



listv1.setAdapter(new ArrayAdapter<String>(Main.this, android.R.layout.simple_list_item_1,getAllContact( )));



masalan injoori :((


vali nemishe

ya asan mikham faghad nam ha ro berizam to ye araye bazam nemishe :((

poorman
جمعه 27 تیر 1393, 00:37 صبح
نام ها رو که میخواین بریزین توی آرایه کاری نداره

اینطوری نام ها رو بریزین توی آرایه بعد هر کاری خواستید با آرایه بکنید


List<contact> allContacts = new DatabaseHandler(context).getAllContact();
String[] names = new String[allContacts.size()];
for(int i = 0; i < allContacts.size(); i++){
names[i] = allContacts.get(i).getName();
}


اگر احیانا جاییش خطای تایپی یا چیزی داشت درستش کنید چون همینجا توی فروم نوشتمش

mehdipoorajab
جمعه 27 تیر 1393, 14:58 عصر
نام ها رو که میخواین بریزین توی آرایه کاری نداره

اینطوری نام ها رو بریزین توی آرایه بعد هر کاری خواستید با آرایه بکنید


List<contact> allContacts = new DatabaseHandler(context).getAllContact();
String[] names = new String[allContacts.size()];
for(int i = 0; i < allContacts.size(); i++){
names[i] = allContacts.get(i).getName();
}


اگر احیانا جاییش خطای تایپی یا چیزی داشت درستش کنید چون همینجا توی فروم نوشتمش

سلام و ممنون اوکی شد !!!

فقط می خواستم بدونم مسیر دیتابیس کجاس ؟

هر چی گشتم پیدا نکردم :(

و مورد دوم این که اکه دیتابیس من چند تا تیبل داشته باشه برای کار باهاش باید چند تا کلاس دیتابیس داشته باشم ؟

یعنی برای هر تیبل یه کلاس یا این که با همون یه کلاس میشه با همه کار کرد ؟

poorman
جمعه 27 تیر 1393, 22:46 عصر
سلام مجدد

مسیر دیتابیس

data/data/yourPackage/database

برای هر چند تا تیبل که خواستین یک کلاس DBHelper کافیه

omid_cr77
جمعه 27 تیر 1393, 23:02 عصر
ممکنه ارور از ساخت تیبل در دیتا بیس باشه

omid_cr77
جمعه 27 تیر 1393, 23:05 عصر
کلاسی که در اون لیست ویو رو تعریف کردی به صورت ListActivity تعریف کن مشکلت احتمالا حل میشه

omid_cr77
جمعه 27 تیر 1393, 23:07 عصر
به زودی یه تاپیک میزارم واسه آموزشش

mehdipoorajab
جمعه 27 تیر 1393, 23:16 عصر
سلام مجدد

مسیر دیتابیس

data/data/yourPackage/database

برای هر چند تا تیبل که خواستین یک کلاس DBHelper کافیه

سلام من از پروژه ای که تو نمونه های ساده گزاشتین استفاده کردم

مشکل من اینه که تو درک دیتابیس تو اینجا مشکل دارم
مثلا تو این مثال شما یه متغیر از نوع contact معرفی میکنه !! خو این کانتکت چیه ؟ :عصبانی++:
من می خوام یه کلاس واحد داشته باشم که کلا کار های دیتا بیس رو توی اون فایل انجام داده بشه و تو activity اصلی فقط توابعی که تو اون کلاس معرفی کردم رو فراخونی کنم !!! ولی هر طوری فک میکنم یه جوری لینگ میزنه !!

مثلا تو اون کلاس با تابع getall بتونم همه ی سطر های یک تیبل رو فراخونی کنم !!! مثلا میخوام بریزم تو ارایه نمیدونم چه طوری

باید ارایه اینجوری باشه a[][] یا .....
کلا گیج شدم :((((((((((((((((((((((((((((((

من موندم خدایی اینا چرا واسه یه کار کردن با دیتابیس انقدر مسخره بازی در میارن

خوب مثل php میشد چی میشد اخه :(

یه کامکت میکنی هر qurey که دوس داری اجرا میکنه بعد میریزی تو یه شئ بعد با while هم نشون میدی :|

خدایی دارم کلافه میشم :((

یکی کمک کنه :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه:

mehdipoorajab
جمعه 27 تیر 1393, 23:17 عصر
ممنون امید جان

اگه یه اموزش جامعی باشه که خیلی خوبه



poorman (http://barnamenevis.org/member.php?295320-poorman) عزیز از تو هم تشکر میکنم که پاسخگو هستی

poorman
جمعه 27 تیر 1393, 23:46 عصر
خواهش میکنم

شما این آموزش رو قشنگ مطالعه کردید ؟؟؟

http://barnamenevis.org/showthread.php?441406-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-SQLite-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%DA%A9%D9%84%D8%A7%D8%B3-DataBaseHelper

اینجا من سیر تا پیاز دیتابیس رو توضیح دادم

کدهایی که توضیح دادم رو بذارید توی تابع getAll مثلا و خروجی رو به صورت آرایه برگردونید یا به صورت لیست

mehdipoorajab
جمعه 27 تیر 1393, 23:53 عصر
خواهش میکنم

شما این آموزش رو قشنگ مطالعه کردید ؟؟؟

http://barnamenevis.org/showthread.php?441406-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-SQLite-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%DA%A9%D9%84%D8%A7%D8%B3-DataBaseHelper

اینجا من سیر تا پیاز دیتابیس رو توضیح دادم

کدهایی که توضیح دادم رو بذارید توی تابع getAll مثلا و خروجی رو به صورت آرایه برگردونید یا به صورت لیست

اره خوندم میخوام اوصولی یاد بکیرم مثلا contact یعنی چی ؟

adapter یعنی چی ؟

چرا باید حتما واسه این که لیست ویو رو مقدار دهی کنی باید یه کلاس حدا بسازی

poorman
شنبه 28 تیر 1393, 01:25 صبح
اون آموزش اصولی نیست، کار راه اندازی هست، یعنی شما یاد میگیری چطوری با دیتابیس کار کنی، دیگه اصول و نظم رو باید خودتون یاد بگیرید

-------------------------

contact اسم کلاسی هست برای جدول مخاطبین، که این کلاس یک نمونه از آیتم های داخل جدول به حساب میاد

ساختنش و استفاده ازش اجباری نیست اما بهتون توی استفاده از دیتابیس کمک میکنه

شما میتونید برای هر جدول یک کلاس بسازید که فیلدهای داخل جدول رو توش معرفی کنید و ازش استفاده کنید

آداپتر رو برای مقدار دادن به لیست ویو و گریدویو و ... میسازید دیگه، حتما نباید یک کلاس جدا بسازید، شما همونجا توی اکتیویتی هم میتونی کل کدهای کلاس آداپتر رو بذاری

اما هر بار که خواستی استفاده کنی دوباره باید اون کدها رو بنویسی، پس بهتره یک کلاس جدا باشه که توی کم کردن حجم کد و نظم دادن به کدها کمک بشه

mehdipoorajab
شنبه 28 تیر 1393, 23:52 عصر
mamnoon poooran jan

mamnoon va vaghan tashakooor azat daram

nemidoonam che toori azat tashakoor konam

------------------
و سوال دیگه

من مشکلم با دیتابیس تقریبا حل شد و ازت ممنونم

و مشکل جدید من هم اینه

که تو برنامم مثلا چند تا اکتیویتی دارم که یکی اکتیویتی واسه خوشامد گویی و یکی واسه وارد کردن گذروازه و یکی صفحه اصلی برنامه و سایر صفحات

با ساختن اکتیویتی ها و ارتباطشون از طریق intent مشکلی ندارم ولی فرض کن برنامه ران میشه و اکتیویتی خوشامد گویی نشون داده میشه و بعد از اون اکتیویتی گرفتن پسورد و بعد صفحه اصلی برنامه

حال بر فرض این مراحل طی شود و کاربر به صفحه اصلی برسد - مشکلش اینجاس که وقتی رو بک کلیک میشه میره روی اکتیویتی گرفتن پسورد که خب این مشکل داره :(

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

اگه کسی بتونه کمک کنه ممنون میشم !!!

poorman
یک شنبه 29 تیر 1393, 00:38 صبح
خب این مشکلات دیگه به دیتابیس مربوط نمیشه زیاد و توی انجمن هم قبلا پاسخ داده شده

شما بعد از اینکه توی اکتیویتی splash و login کد ورود به صفحه دیگه رو نوشتید بنویسید finish();

این کار بعد از ورود به یک اکتیویتی دیگه، اکتیویتی قبلی رو میبنده

برای ذخیره کردن پسوورد توی دیتابیس هم یک فیلد توی shared preferences یا دیتابیس بذارید که به صورت 0 و 1 مقدار رو ذخیره کنه

بعدش توی متد onCreate اکتیویتی login چک کنید اگر اون مقدار 1 بود دیگه ادامه نده و به اکتیویتی اصلی بره، در غیراینصورت اگر مقدار 0 بود کاری نکنه

mehdipoorajab
یک شنبه 29 تیر 1393, 16:46 عصر
خب این مشکلات دیگه به دیتابیس مربوط نمیشه زیاد و توی انجمن هم قبلا پاسخ داده شده

شما بعد از اینکه توی اکتیویتی splash و login کد ورود به صفحه دیگه رو نوشتید بنویسید finish();

این کار بعد از ورود به یک اکتیویتی دیگه، اکتیویتی قبلی رو میبنده


برای ذخیره کردن پسوورد توی دیتابیس هم یک فیلد توی shared preferences یا دیتابیس بذارید که به صورت 0 و 1 مقدار رو ذخیره کنه

بعدش توی متد onCreate اکتیویتی login چک کنید اگر اون مقدار 1 بود دیگه ادامه نده و به اکتیویتی اصلی بره، در غیراینصورت اگر مقدار 0 بود کاری نکنه

چه طوری یه فیلد توی
shared preferences بسازم و بهش مقدار دهی اولیه رو بدم ؟


public class Login extends Activity {
SQLiteDatabase mydb;
private EditText Main_pass ;
private TextView tv;
private Button btn;

public Boolean FristRun = getSharedPreferences("MYPRO", 0).getBoolean("fr", true);

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
...
..



من این جوری تعریف میکنم و یه if هم میزارم که بررسیش کنه و مثلا اگه true بود یه کدی اجرا بشه اخره اون کد هم مقدارشو false میکنم ولی دفعه بعدی هم اجرا میشه در صورتی که نباید بشه :(

poorman
یک شنبه 29 تیر 1393, 19:06 عصر
کد ذخیره کردن رو که کامل اینجا ننوشتید ولی طبق این پست اگر برید جلو به مشکل برنخواهید خورد

http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008744&viewfull=1#post2008744

mehdipoorajab
چهارشنبه 01 مرداد 1393, 14:13 عصر
کد ذخیره کردن رو که کامل اینجا ننوشتید ولی طبق این پست اگر برید جلو به مشکل برنخواهید خورد

http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008744&viewfull=1#post2008744

بازم ممنون :قلب:

دو تا متغیر از نوع string رو چه طوری مقایسه کنم ؟

مثلا برای integer میشه اینجوری a == b ولی برای string این جوری جواب نداد :(:متفکر:

--- -- - -- پیدا کردم !!!!

ممنون از
poorman (http://barnamenevis.org/member.php?295320-poorman)

o0o0okay
چهارشنبه 07 آبان 1393, 00:52 صبح
اقا منم به یه مشکل در ارتباط بین دیتابیس و برنامه م بر خوردم
میشه ی نگاهی بندازید و کمک کنین.
لینکش:
http://barnamenevis.org/showthread.php?472767-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A7%D8%B3%D8%AA%D9%88%D8%AF%DB%8C%D9%88&highlight=%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8% B3+%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF