ذخیره اطلاعات spinner در برنامه نویسی اندروید-به صورتی که اگر بر روی هرکدام از گزینه ها کلیک کرد در برنامه ذخیره شود

باسلام و عرض خسته نباشید و تشکر از پاسخگویی عالیتان

من یک spinner دارم که دو گزینه داره می خوام زمانی که کاربر بر روی هر کدامشان کلیک کرد ذخیره بشه و زمانی که از برنامه خارج می شه و دوباره بر می گرده اطلاعاتش ذخیره شده باشه و لازم نباشه که دوباره واردش کند.

ممنون می شوم راهنمایی ام کنید

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

باسلام مجدد

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

بازهم ممنون

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

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

یکی از راه حل های ان، shared preferences است،که این قابلیت یعنی یک دیتا داخل اپت ذخیره کنی،با بستن و باز کردن اپت این مقدارمتغییرت از بین نمی رود..

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

spinnerPos = arg1;

خوب تعریف shared...هم به صورت زیر است:

SharedPreferences spinnersaving = getSharedPreferences("spinnerstate",0);

 

;البته  ما اینجا باید قبل از بسته شدن اپ شما اون استیت را ذخیره کنیم و بعد باز کردن اپ شما دوباره ان را ست کنیم که از دیتایی که داخل shared prefrence ذخیره شده باید این کار را کنیم.

protected void onStop(){
super.onStop();
SharedPreferences spinnersaving = getSharedPreferences("spinnerstate",0);

SharedPreferences.Editor editor = spinnersaving.edit();
editor.putInt("spinnerPos", spinnerPos);
editor.commit();
}

بعد هم هنگام باز کردن اسپینر کافی است از این shared preferences تعریف شده استفاده کنید.

لینک http://stackoverflow.com/questions/29527534/cant-save-spinner-state-android

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام یک راه حل مشابه

برای ذخیره کردن


      int selectedPosition = yourSpinner.getSelectedItemPosition()
      editor.putInt("spinnerSelection", selectedPosition);
      editor.commit();

 

برای لود دوباره


    yourSpinner.setSelection(prefs.getInt("spinnerSelection",0));

 

اطلاعات بیشتر

http://stackoverflow.com/questions/16358563/how-to-maintain-spinner-state-in-android

راه حل دیگه خودت ببین اولین جواب ببین چطوری کار را برای ما انجام باید بدهد به عهده خودت...

http://stackoverflow.com/questions/20209015/how-do-i-preserve-the-state-of-a-selected-spinner-dropdown-item-on-orientation-c

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

سلام وقت بخیر

برای انجام این کار شما چند راه که ساده تر هستند در پیش دارید.

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

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

سومین راه استفاده از SharedPreferences

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


import java.util.HashMap;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

import hashtagsocialnetwork.alisarkhosh.ir.Activitys.ActivitySignUpSignIn;

public class SessionManager {
    // Shared Preferences
    SharedPreferences pref;

    // Editor for Shared preferences
    Editor editor;

    // Context
    Context _context;

    // Shared pref mode
    int PRIVATE_MODE = 0;

    // Sharedpref file name
    private static final String PREF_NAME = "name";

    // All Shared Preferences Keys
    private static final String IS_LOGIN = "IsLoggedIn";

    // User name (make variable public to access from outside)
    public static final String KEY_EMAIL = "email";

    // Password (make variable public to access from outside)
    public static final String KEY_PASSWORD = "password";


    // Constructor
    public SessionManager(Context context){
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
        pref.edit().apply();
    }

    /**
     * Create login session
     * */
    public void createLoginSession(String username, String password , String uid){
        // Storing login value as TRUE
        editor.putBoolean(IS_LOGIN, true);

        // Storing email in pref
        editor.putString(KEY_EMAIL, username);

        // Storing password in pref
        editor.putString(KEY_PASSWORD, password);
        
        // commit changes
        editor.commit();
    }

    /**
     * Check login method wil check user login status
     * If false it will redirect user to login page
     * Else won't do anything
     * */
    public void checkLogin(){
        // Check login status
        if(!this.isLoggedIn()){
            // user is not logged in redirect him to Login Activity
            Intent i = new Intent(_context, ActivitySignUpSignIn.class);
            // Closing all the Activities
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            // Add new Flag to start new Activity
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            // Staring Login Activity
            _context.startActivity(i);
        }

    }



    /**
     * Get stored session data
     * */
    public HashMap<String, String> getUserDetails(){
        HashMap<String, String> user = new HashMap<String, String>();
        // user name
        user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));

        // user email id
        user.put(KEY_PASSWORD, pref.getString(KEY_PASSWORD, null));


        // return user
        return user;
    }

    /**
     * Clear session details
     * */
    public void logoutUser(){
        // Clearing all data from Shared Preferences
        editor.clear();
        editor.commit();

        // After logout redirect user to Loing Activity
        Intent i = new Intent(_context, ActivitySignUpSignIn.class);
        // Closing all the Activities
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        // Add new Flag to start new Activity
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        // Staring Login Activity
        _context.startActivity(i);
    }

    /**
     * Quick check for login
     * **/
    // Get Login State
    public boolean isLoggedIn(){
        return pref.getBoolean(IS_LOGIN, false);
    }



}
online-support-icon