安卓studio 利用RatingBar评分 并用列表显示历史分数
时间: 2023-06-12 13:04:09 浏览: 35
首先,在你的布局文件中添加 RatingBar 和一个 ListView:
```
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="0.5"
android:rating="0" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
接下来,在你的 Activity 中,你需要定义一个 List 和一个 ArrayAdapter,用于存储和展示历史分数。同时,你需要在 RatingBar 上添加一个 OnRatingBarChangeListener,以便在用户改变评分时更新历史分数。
```
public class MainActivity extends AppCompatActivity {
private List<String> scoresList = new ArrayList<>();
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RatingBar ratingBar = findViewById(R.id.ratingBar);
ListView listView = findViewById(R.id.listView);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, scoresList);
listView.setAdapter(adapter);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
String scoreText = "Score: " + rating;
scoresList.add(scoreText);
adapter.notifyDataSetChanged();
}
});
}
}
```
在这个例子中,当用户改变评分时,我们将评分转换为字符串并添加到 scoresList 中,然后调用 adapter.notifyDataSetChanged() 方法以通知 ListView 更新数据。
现在你已经可以在 RatingBar 上评分并在 ListView 中显示历史分数了。