Android 如何使用SharedReferences保存和检索微调器状态

Android 如何使用SharedReferences保存和检索微调器状态,android,sharedpreferences,spinner,Android,Sharedpreferences,Spinner,我在活动中有一个简单的旋转器。如果我在列表中选择了具有SharedReferences的内容,我希望保存微调器的位置。但是,当我切换到另一个活动并再次返回时,它会重置为默认状态。我不知道为什么,我的首选项未保存或未加载 这是我的活动 package com.bani.latihan; import android.content.Context; import android.content.Intent; import android.content.SharedPreference

我在活动中有一个简单的旋转器。如果我在列表中选择了具有SharedReferences的内容,我希望保存微调器的位置。但是,当我切换到另一个活动并再次返回时,它会重置为默认状态。我不知道为什么,我的首选项未保存或未加载

这是我的活动

    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();
}






}
package com.bani.latihan;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.content.res.Configuration;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.view.WindowManager;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.Spinner;
导入android.widget.Toast;
/**
*由Bani Burhanuddin于2016年2月25日创建。
*/
公共类Intent6扩展了AppCompatActivity{
@凌驾
公共无效OnConfiguration已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,
WindowManager.LayoutParams.FLAG(全屏);
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_启动器);
getSupportActionBar().setDisplayUseLogoEnabled(true);
setContentView(R.layout.halaman_6);
按钮btnback=(按钮)findViewById(R.id.buttonPrev6);
按钮btnHome=(按钮)findViewById(R.id.buttonHome6);
btnHome.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
startActivity(新意图(意图6.this,Main.class));
完成();
}
});
btnback.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
startActivity(新意图(意图6.this,意图5.class));
完成();
}
});
最终喷丝器喷丝器6=(喷丝器)findViewById(R.id.spinner6);
ArrayAdapter=ArrayAdapter.createFromResource(
这个,R.array.android\u布局\u数组,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头6.设置适配器(适配器);
final String firstItem=String.valueOf(spinner6.getSelectedItem());
spinner6.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(firstItem.equals(String.valueOf(spinner6.getSelectedItem())){
}否则{
Toast.makeText(parent.getContext(),
“Ko milich:+parent.getItemAtPosition(position.toString(),
Toast.LENGTH_LONG).show();
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
SharedReferences测试=获取SharedReferences(“Preferences6_1”,Context.MODE_PRIVATE);
int spinnerValue=test.getInt(“首选项6_1”,-1);
if(spinnerValue!=-1)
//设置微调器的值
喷丝头6.setSelection(spinnerValue);
}
@凌驾
公共无效暂停(){
super.onPause();
喷丝器喷丝器6=(喷丝器)findViewById(R.id.spinner6);
SharedReferences.Editor prefEditor=GetSharedReferences(“Preferences6”,0.edit();
putInt(“spinner6”,spinner6.getSelectedItemPosition());
prefEditor.apply();
}
}

您在读写时使用了不同的共享首选项名称。你用来阅读的钥匙也是错的

请更改以下代码

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


哦,我的天,在尝试在SharedReferences中调用spinner方法之后,我想我从来没有得到正确的代码,确切的失败是,我没有设置正确的首选项名称,谢谢你,伙计,为愚蠢的失败感到抱歉。
SharedPreferences test = getSharedPreferences("Preferences6", Context.MODE_PRIVATE);
int spinnerValue = test.getInt("spinner6",-1);