Android - 从OnClickListener ImageViews制作单选按钮

时间:2016-12-21 11:05:42

标签: android onclick imageview onclicklistener

我正在制作一款应用程序,允许用户通过单选按钮方法向客户端提供反馈,例如1-5或差 - 惊人。然而,按钮需要是自定义图像'表情符号'。

我尝试创建自己的自定义单选按钮,但这非常痛苦,而且图像质量很低,因为尺寸需要精确。我决定制作几个图像视图并使用OnClickListeners,一切都很顺利。

然而,我正在努力研究如何制作OnClickListeners。基本上我希望用户每个问题只能点击一个图像,就像单选按钮一样。当他们点击图像时,图像将变为另一个图像。但是用户不应该同时点击两个图像,再次像单选按钮一样。

我已经检查过是否有人之前曾问过这个问题并且找不到任何内容,对不起,如果它已经被回答了。

希望我已经清楚地解释过了,如果我没有,那就再说抱歉。这是我第一次在这里发帖:)

1 个答案:

答案 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/