如何保存特定项目的微调器状态

How to save spinner state for specific item

所以我有一个 android 应用程序来组织项目列表。每个项目都有相同的字段。包括通过旋转器选择的一个。
我可以单独保存每个项目的详细信息,然后打开并编辑它们没有任何问题。
但是,每当我更改一个项目的微调器值时,它都会为所有项目更改它。如何为每个单独的项目设置微调器的位置?下面的代码显示了我如何创建微调器并保存它的状态。问题是它的状态是为列表中的所有项目保存的。如何单独保存?

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, genres);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    //SET SELECTION AFTER YOU SET THE ADAPTER NOT BEFORE IT
    spinner.setSelection(preferences.getInt("spinnerSelection",0));
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        SharedPreferences preferences =PreferenceManager.getDefaultSharedPreferences(MovieInfo.this);

        public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) {
            int item = spinner.getSelectedItemPosition();

            //String selected = spinner.getItemAtPosition(position).toString();
            //Toast.makeText(MovieInfo.this, "Selected item: " + selected, Toast.LENGTH_SHORT).show();
            SharedPreferences.Editor editor = preferences.edit();
            editor.putInt("spinnerSelection", item);
            editor.commit();

        }
        public void onNothingSelected(AdapterView<?> arg0) {

         }
    });

尽管您可以使用 SharedPreferences 来完成此操作,但我建议您改用 数据库

onItemSelected()方法中添加相关代码。可能是你想在方法里面的sqlite中添加记录。

更新:

根据您在聊天中提出的问题,您可以使用 Field 变量而不是 local 来消除 [=18] 的需要=]决赛.