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

نحوه استفاده ازSharedPreferences(راهنمایی درساخت لاگین)


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

با سلام و وقتبخیر

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

و وقتی حسن با پسورد345 را زد یک صفحه دیگه

فقط همین دو تا کاربر را دارد

سرچ کردم تو انجمن بنظرم باید از SharedPreferences استفاده کنم

اما هیچ دانشی راجع بهش ندارم

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

این SharedPreferences چیه؟

مورد کاربرد من هست؟

ممنونم:shy:

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

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

به صورت زیر پیاده سازی کنید:

یک Layout بدین صورت ایجاد کنید:

[shcode=java]

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="@drawable/bak"

    android:gravity="center" >

 

   

        android:id="@+id/edt_pass"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:layout_alignParentLeft="true"

        android:layout_alignParentRight="true"

        android:layout_centerHorizontal="true"

        android:layout_marginBottom="10dp"

        android:layout_marginLeft="30dp"

        android:layout_marginRight="30dp"

        android:inputType="text"

        android:paddingLeft="5dp"

        android:paddingRight="5dp" />

   

        android:id="@+id/btn_login"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

    android:text="login"

        android:layout_alignParentLeft="true"

        android:layout_alignParentRight="true"

        android:layout_below="@+id/edt_pass"

        android:layout_marginLeft="30dp"

        android:layout_marginRight="30dp"/>

[/shcode]

سپس در اکتیویتی مورد نظر:

[shcode=java]

public class Login extends Activity {

       

        EditText txt_pass;

        Button btn_login;

       

       

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

         requestWindowFeature(Window.FEATURE_NO_TITLE);

            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                                    WindowManager.LayoutParams.FLAG_FULLSCREEN);

       

        setContentView(R.layout.activity_login);

       

        txt_pass=(EditText)findViewById(R.id.edt_pass);

        btn_login=(Button)findViewById(R.id.btn_login);

        btn_login.setOnClickListener(new View.OnClickListener() {

           

            @Override

            public void onClick(View v) {

                // TODO Auto-generated method stub

               

               

                SharedPreferences preferences = getSharedPreferences(

                        "user", 0);

                String pass=preferences.getString("pass", "");

                Intent i=new Intent(getApplicationContext(),ListContact.class);

                if(pass.length()<=0)

                {

                    SharedPreferences.Editor editor = preferences.edit();

                    editor.putString("pass", txt_pass.getText().toString());

                   

                    editor.commit();

//ok its true

                }

                else

                {

                    try {

                       

                        if(txt_pass.getText().toString().equalsIgnoreCase(pass))

                        {

                           

                            //ok its true

                        }

                        else

                        {

                            //cant login

                        }

                       

                    } catch (Exception e) {

                        // TODO: handle exception

                        e.printStackTrace();

                    }

                   

                   

                }

               

            }

        });

    }

}

[/shcode]

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

ممنونم

اما یه چیز

من که دوتا تکست دارم

کار خاصی نمیخواد بکنم؟فقط دقیقا مثه همین تکست یکی اضافه کنم

و قراره با اسم حسن یک صفحه با ی سری مشخصات و با اسم و یوزر حسن 123 یک صفحه دیگه باز باشه / باید دو تا اکتویتی اضافه کنم؟

و اینکه ممکنه یکم توضیح بددید

مثلا listcantact خط 31 چیه؟

خود SharedPreferences چیه ؟تابع؟کلاسه ؟

ی دنیا سپاس

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

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

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

دوست عزیز اول یه توضیح ازSharedPreferences  میذارم

SharedPreferences، در واقع در مواقعی بکار می رود که می خواهیم فایل تنظیماتی برای برنامه خود با قابلیت ذخیره تنظیمات در دستگاه اندروید، داشته باشیم.

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

به عنوان مثال میخواهیم تنظیماتی برای ذخیره یه String که یه مثلا به دید روشن و خاموش بودن سرویسمون بهش نگاه کنیم، در سیستم ذخیره کنیم.

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

[align=left]SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

String ENABLE = sharedPreferences.getString("Enable", "on");[/align]

خط اول که تعریف متغیری از نوع SharedPreferences می باشد و در خط دوم متغیر ENABLE که از نوع String بوده و با استفاده از متد getString فراخوانی می گردد که آرگومان های آن به ترتیب، کلید درخواست و مقدار پیش فرض درخواست می باشد.

در واقع چک می کند که آیا مقداری با کلید Enable در تنظیمات ذخیره شده است یا نه که در صورت بودن، مقدار ذخیره شده، و در غیر این صورت مقدار پیشفرض که در اینجا on می باشد را بر می گرداند.

برای نوشتن تنظیمات نیز، اعمال زیر را انجام می دهیم:

[align=left]SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

Editor editor = sharedPreferences.edit();

editor.putString("Enable", "off");

editor.commit();[/align]

خط اول که همان تعریف بوده و در خط دوم هم نیازی به متغیری از نوع Editor داریم تا بتوانیم، اطلاعات موجود در SharedPreferences را تغییر دهیم.

در خط سوم، میخواهیم، توسط Editor مقدار با کلید Enable را به off تغییر دهیم که این کار نیز با مقدار putString امکان پذیر است و در واقع از این پس بعد از باز کردن برنامه، مقدار خوانده شده در قسمت اول کد، به جای مقدار پیشفرض مقدار off بر میگرداند و تا وقتی مقدار آن را عوض نکینم، همینطور خواهد ماند.

البته باید توجه کرد که برای ذخیره تغییرات نیاز به خط چهارم برنامه است.

در ضمن به جای getString و putString که در این مثال به آن اشاره شد، انواع دیگری از جمله Integer، Boolean و ... نیز برای SharedPreferences تعریف شده است.

در واقع میتوان SharedPreferences را با JSON که قالبا از آن جهت ذخیره فایل تنظیمات استفاده می گردد مقایسه کرد.

================

از این لینک میتونی واسه کاری که میخوای استفاده کنی

http://www.kelidestan.com/keys/keys.php?key=248

http://p30droid.com/Thread-SharedPreferences-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF

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

ممنونم دوستان عزیز

پس زیاد به درد کار من نمیخوره

درسته ؟

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

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

دوستان کسی نمیتونه کمکم کنه؟

خیلی بدجور با مشکل مواجه شدم

اگه کسی میتونه کمککم کنه خصوصی هم پیام بده

یهه دنیا ممنونم ازتون

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

دوست عزیز میتونید از دیتابیس استفاده کنین.یا اگه یوزرنیم و پسورداتون ثابته میتونین تو کد برنامه بگین اگه این یوزر و پس بود به کدوم صفحه بره در غیر این صورت اگه مساوی یوزر و پس دومی بود به صفحه دیگه.

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

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

if

else if

else

سوالی بود در خدمتیم

موفق باشید

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

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

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

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

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

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

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

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

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

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