如何保存 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
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()
.