安卓:SharedPreferences 问题

标签 android android-sharedpreferences

大家好,请检查一下

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grade_viewer);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        myListView = (ListView) findViewById(R.id.list);

        String records[] = {"Prelim","Midterm","Final", "Final Grade"};

        myAdapter = new ArrayAdapter<String>(this, R.layout.list_rec, R.id.tvRec, records);
        myListView.setAdapter(myAdapter);
        myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String TERM = ((TextView) (view.findViewById(R.id.tvRec))).getText().toString();
                SharedPreferences preferences = getSharedPreferences("MyApp", MODE_PRIVATE);
                preferences.edit().putString("term", TERM);
                switch (position){
                    case 0:
                        Intent intent = new Intent(GradeViewer.this, PrelimGrade.class);
                        startActivity(intent);
                        break;
                    case 1:
                        Intent intent1 = new Intent(GradeViewer.this, MidtermGrade.class);
                        startActivity(intent1);
                        break;
                    case 2:
                        Intent intent2 = new Intent(GradeViewer.this, TentativeFinalGrade.class);
                        startActivity(intent2);
                        break;
                    case 3:
                        Intent intent3 = new Intent(GradeViewer.this, FinalGrade.class);
                        startActivity(intent3);
                        break;
                }
            }
        });
    }

我正在尝试将字符串(术语)传递给第二个 Activity 。 例如,我按下了 ListView 中的第一个项目(Prelim),然后共享首选项将在第二个 Activity 中传递字符串。

问题是当我按下 2nd(Midterm)、3rd(Final)项目等时,存储在共享首选项中的字符串仍然是(Prelim)。

最佳答案

我想你忘记了类似的东西

preferences.edit().putString("term", TERM).commit();

关于安卓:SharedPreferences 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34993816/

相关文章:

java - 使用 SharedPreferences.contains() 时 Android 应用程序崩溃

java - 如何使用SharedPreference保存自定义ArrayList?

android - 如何解决Android项目中的ERROR : Failed to resolve: com. google.firebase :firebase-measurement-connector:11. 6.0?

android - Cordova /一般 : Easiest way to develop for different screen layouts?

android - 使用与旧 Android 版本兼容的文件提供程序 list

android - AsyncTask 到 SharedPreferences

android - Shared Pref 在某些高端设备(如三星)中返回错误值

java - 如果我使用 SharedPreferences,使用 onSaveInstanceState 是否有用

java - 安卓 : custom adapter showing data multiple times

android - 如何使用adb shell将文件夹从计算机推送到sdcard