我正在制作一款应用程序,允许用户通过单选按钮方法向客户端提供反馈,例如1-5或差 - 惊人。然而,按钮需要是自定义图像'表情符号'。
我尝试创建自己的自定义单选按钮,但这非常痛苦,而且图像质量很低,因为尺寸需要精确。我决定制作几个图像视图并使用OnClickListeners,一切都很顺利。
然而,我正在努力研究如何制作OnClickListeners。基本上我希望用户每个问题只能点击一个图像,就像单选按钮一样。当他们点击图像时,图像将变为另一个图像。但是用户不应该同时点击两个图像,再次像单选按钮一样。
我已经检查过是否有人之前曾问过这个问题并且找不到任何内容,对不起,如果它已经被回答了。
希望我已经清楚地解释过了,如果我没有,那就再说抱歉。这是我第一次在这里发帖:)
答案 0 :(得分:0)
您需要保留用户选择背后的逻辑。 例如:
private ImageView[] ratingsImages; //[0-4]
private int selectedRating = -1;
private void selectRatingWithPosition(int position){
//deselect all the ratings (maybe changing image background)
selectedRating = position;
//change background for selected one of ratingsImages[position]
}
现在,在ImageView的每个OnClickListener中,您需要调用此方法提供正确的位置,可能与此类似:
for (final int i = 0; i < ratingsImages.length(); i++){
ratingsImages[i].setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
selectRatingWithPosition(i);
}
});
}
还有更多选择,这只是一个起点。 别忘了Android Framework已经提供了评分栏的基本实现,如果您有兴趣请查看此处:https://developer.android.com/reference/android/widget/RatingBar.html以及此处有关如何使用它们的教程https://www.mkyong.com/android/android-rating-bar-example/