如何保存 RatingBar 值?

How can i save RatingBar value?

error

RatingBar rb;
TextView rate;
SharedPreferences wm;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_puan);
    rate = (TextView) findViewById(R.id.text);
    ((RatingBar) findViewById(R.id.ratingBar))
            .setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
                @Override
                public void onRatingChanged(RatingBar ratingBar, float rating, boolean b) {
                    final int numStars = ratingBar.getNumStars();
                    editor = wm.edit();
                    editor.putFloat("numStars", rating);
                    editor.commit();
                    int ratings = wm.getInt("numStars", 0);
                    rate.setText(rating + "/" + String.valueOf(ratings));
                }
            });
    wm = PreferenceManager.getDefaultSharedPreferences(this);
    float rating = wm.getFloat("numStars", 0f);
    rb.setRating(rating);
}

我有这段代码,但是当我 运行 它时,我收到 "puan has stopped" 错误。我怎么解决这个问题?请帮助我,非常感谢。

您没有初始化 RatingBar rb,但您在其上使用了方法 setRating。那就是问题所在。添加到您的代码

rb = (RatingBar) findViewById(R.id.ratingBar);

它应该可以工作。 您也可以稍后在 setOnRatingBarChangeListener().

中使用 rb