繁体   English   中英

从微调器中选择保存项目的位置

[英]get selected save item position from Spinner

我想存储微调器位置。 这使我可以在打开应用程序时还原微调器。

目前,我的代码无法正常工作。 它正在保存数据,但是当我打开应用程序时,我单击的最后一项没有打开。

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    refRoomsNew.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


         for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    spinner = (Spinner)findViewById(R.id.spinnerMain);
 ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, RoomsNew);
                            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
               spinner.setAdapter(dataAdapter);


      String data = snapshot.getValue(String.class);
                            RoomsNew.add(data);
                            addListenerOnSpinnerItemSelection();

                            Integer spinnerNew = prefs.getInt("Spinner", 0);

                            // Log.d("Spinner", spinnerNew);
                            if(spinnerNew != null ) {
                                Log.d("spinnerNew", String.valueOf(spinnerNew));
                                spinner.setSelection(spinnerNew);
                            }

                        }
                    }
    }
    @Override
    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {


        SharedPreferences.Editor editor = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE).edit();
        editor.putInt("Spinner", indexValue);
        editor.apply();
    }

设置适配器后,您必须立即设置位置。 就像是:

spiner.setAdater();
SharedPreferences prefs = getSharedPreferences("...",Context.MODE_PRIVATE);
// If "Spinner" is not set, it will assign 0
Integer initialValue = prefs.getInt("Spinner", 0);
spinner.setSelection(initialValue);

然后,在onItemSelected期间,您只需要存储值:

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
    SharedPreferences.Editor editor = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE).edit();
    editor.putInt("Spinner", position);
    editor.apply();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM