簡體   English   中英

如何使用SharedPreferences保存和檢索微調器狀態

[英]How to save and retrieve spinner state using SharedPreferences

我在一個活動中有簡單的微調器。 如果要在列表中選擇帶有sharedPreferences的內容,我想保存微調框的位置。 但是,當我更改為其他活動並再次恢復時,它會重置為默認狀態。 我不知道為什么,我的首選項未保存或我的首選項未加載。

這是我的活動

    package com.bani.latihan;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

/**
 * Created by Bani Burhanuddin on 25/02/2016.
 */
public class Intent6 extends AppCompatActivity {



@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.mipmap.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    setContentView(R.layout.halaman_6);

    Button btnback = (Button) findViewById(R.id.buttonPrev6);
    Button btnHome = (Button) findViewById(R.id.buttonHome6);

    btnHome.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(Intent6.this, Main.class));
            finish();

        }
    });

    btnback.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(Intent6.this, Intent5.class));
            finish();

        }
    });




    final Spinner spinner6 = (Spinner) findViewById(R.id.spinner6);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.android_layout_arrays, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinner6.setAdapter(adapter);
   final String firstItem = String.valueOf(spinner6.getSelectedItem());



    spinner6.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (firstItem.equals(String.valueOf(spinner6.getSelectedItem()))) {

            } else {
                Toast.makeText(parent.getContext(),
                        "Ko Milih : " + parent.getItemAtPosition(position).toString(),
                        Toast.LENGTH_LONG).show();

            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

    SharedPreferences test = getSharedPreferences("Preferences6_1", Context.MODE_PRIVATE);
    int spinnerValue = test.getInt("Preferences6_1",-1);
    if(spinnerValue != -1)
        // set the value of the spinner
        spinner6.setSelection(spinnerValue);


}

@Override
public void onPause() {
    super.onPause();
    Spinner spinner6 = (Spinner) findViewById(R.id.spinner6);
    SharedPreferences.Editor prefEditor = getSharedPreferences("Preferences6", 0).edit();
    prefEditor.putInt("spinner6", spinner6.getSelectedItemPosition());
    prefEditor.apply();
}






}

您在讀寫時使用的是共享首選項的其他名稱。 另外,您用於閱讀的密鑰是錯誤的。

請更改以下代碼

SharedPreferences test = getSharedPreferences("Preferences6_1", Context.MODE_PRIVATE);
int spinnerValue = test.getInt("Preferences6_1",-1);

SharedPreferences test = getSharedPreferences("Preferences6", Context.MODE_PRIVATE);
int spinnerValue = test.getInt("spinner6",-1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM