Java 使用共享首选项保存和获取微调器项

Java 使用共享首选项保存和获取微调器项,java,android,sharedpreferences,android-spinner,Java,Android,Sharedpreferences,Android Spinner,我在将微调器项保存到共享首选项时遇到问题。我的意思是我真的不知道怎么做。如果有人知道的话,有人能向我解释一下就好了。提前谢谢:) 因此,我将按钮1设置为打开一个带有微调器的对话框,在微调器中,我有3项(在strings.xml中声明)。我应该使用共享首选项将微调器默认设置为项目1:“-”,如果用户选择项目2“lang1”或“lang2”,它应该保存在应用程序中。所以当我下次打开应用程序时,它的“lang1”或“lang2”取决于选择 其他一切都很好 public class MainActivi

我在将微调器项保存到共享首选项时遇到问题。我的意思是我真的不知道怎么做。如果有人知道的话,有人能向我解释一下就好了。提前谢谢:)

因此,我将按钮1设置为打开一个带有微调器的对话框,在微调器中,我有3项(在strings.xml中声明)。我应该使用共享首选项将微调器默认设置为项目1:“-”,如果用户选择项目2“lang1”或“lang2”,它应该保存在应用程序中。所以当我下次打开应用程序时,它的“lang1”或“lang2”取决于选择

其他一切都很好

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    SharedPreferences sharedpreferences;
    public static final String mypreference = "mypref";

    int spinnerPosition;
    public Button btnTrans, btnSelect,btnInput,btnCheck;
    public TextView tv_title, tv_message;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSelect= (Button) findViewById(R.id.btnLanguage);
        btnInput = (Button) findViewById(R.id.btnInput);
        btnTrans = (Button) findViewById(R.id.btnTranslate);

        btnTrans.setOnClickListener((View.OnClickListener) this);
        btnInput.setOnClickListener(this);
        btnSelect.setOnClickListener(this);

        Spinner lang_spinner = (Spinner) findViewById(R.id.lang_spinner);

    }

    public void onClick(View v)
        {
        int id=v.getId();

        switch (id){
            case R.id.btnLanguage:

                AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
                View mView = getLayoutInflater().inflate(R.layout.language_dialog, null);
                mBuilder.setTitle("select language");
                final Spinner mSpinner = (Spinner) mView.findViewById(R.id.lang_spinner);
                final ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
                        android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.lang_array));

                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                mSpinner.setAdapter(adapter);
                mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    SharedPreferences.Editor editor = sharedpreferences.edit();

                    //SELECTING LANGUAGE switch case (translate btn)-
                    @Override
                    public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                        Object item = adapterView.getItemAtPosition(position);
                        if (item != null) {

                            switch (position) {
                                case 0:
                                    item = "-";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.nista, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                                case 1:
                                    item = "lang1";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.hrvatski, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                                case 2:
                                    item = "lang2";
                                    btnTrans.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            Toast.makeText(getApplicationContext(), R.string.english, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    break;
                            }

                        }
                        //on selected save

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> adapterView) {
                        //nothing selected "-"
                    }
                });



public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
SharedReferences SharedReferences;
公共静态最终字符串mypreference=“mypref”;
内喷丝头位置;
公共按钮btnTrans、BTSELECT、btnInput、btnCheck;
公共文本查看电视标题、电视消息;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSelect=(按钮)findViewById(R.id.btnLanguage);
btnInput=(按钮)findViewById(R.id.btnInput);
btnTrans=(按钮)findviewbyd(R.id.btnTranslate);
btnTrans.setOnClickListener((View.OnClickListener)this);
btnInput.setOnClickListener(这个);
btselect.setOnClickListener(此);
微调器lang\u微调器=(微调器)findViewById(R.id.lang\u微调器);
}
公共void onClick(视图v)
{
int id=v.getId();
开关(id){
案例R.id.btn语言:
AlertDialog.Builder mBuilder=新建AlertDialog.Builder(MainActivity.this);
View mView=GetLayoutFlater().充气(R.layout.language_对话框,空);
mBuilder.setTitle(“选择语言”);
最终微调器mSpinner=(微调器)mView.findviewbyd(R.id.lang\u微调器);
最终ArrayAdapter适配器=新的ArrayAdapter(MainActivity.this,
android.R.layout.simple_微调器_项,getResources().getStringArray(R.array.lang_数组));
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
mSpinner.setAdapter(适配器);
mSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
SharedReferences.Editor=SharedReferences.edit();
//选择语言开关盒(翻译btn)-
@凌驾
已选择公共位置(AdapterView AdapterView、视图视图、整型位置、长id){
对象项=adapterView.getItemAtPosition(位置);
如果(项!=null){
开关(位置){
案例0:
项目=“-”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.nista,Toast.LENGTH\u LONG.show();
}
});
打破
案例1:
item=“lang1”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.hrvatski,Toast.LENGTH_LONG).show();
}
});
打破
案例2:
item=“lang2”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.english,Toast.LENGTH\u LONG.show();
}
});
打破
}
}
//在选定保存时
}
@凌驾
未选择公共无效(AdapterView AdapterView){
//未选择任何内容“-”
}
});

我是代表小于50,所以我在这里发布链接以共享偏好


从spinner获取你的Lang并将价值存储在共享优先权中。

这是一个链接,展示了如何从spinner获取价值。这回答了你的问题吗?@hasanhasan它只展示了如何从spinner获取价值。Ty谢谢你的尝试,但正如我所说,我对共享偏好一无所知,所以我需要详细的解释。我真的很想尝试阿恩:我不知道在哪里申报什么。。。