【问题标题】:Change the back colour of answerd question button in android更改android中已回答问题按钮的背景颜色
【发布时间】:2020-04-27 19:02:58
【问题描述】:
大家好,我正在为我的学期使用 android 进行在线考试......假设我有 10 个问题,一次只显示 1 个问题......以及 10 个 ID 为 button1 的按钮, button2,button3.......点击每个按钮,它会直接跳到相应的问题......例如,如果我点击按钮5,它将显示问题5等等...... ...每当回答一个问题时,它的按钮背景色应该变为红色...表示它已回答...例如我回答 question5 然后 button5.backcolor =drawing.color.red...
简而言之,我如何使用循环更改所有按钮的背景色???...
在这个我的片段中有我的按钮,我在 recyclerview 中显示我的结果
【问题讨论】:
标签:
android-studio
android-fragments
button
【解决方案1】:
在我的建议中,创建一个名为“已回答”的变量,将其初始化为零,并在用户回答问题时将其设为 1。
当用户回答问题时,通过以下代码更改颜色按钮-
int answered = 0; // change the value of answered = 1, when user answers
if(answered == 1){
button1.setBackgroundColor(ContextCompat.getColor(getContext(),R.color.pasta_co));
// for api level 23 and above
button1.setBackgroundColor(getResources().getColor(R.color.pasta_color));
// for api level below 23
}
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showQuestion(yourQuestionNumber);// function to display your
question
}
});
getResources().getColor() - 不推荐使用 api 级别 23 及更高版本,即您可以使用它,但 google 不再推荐使用该功能。
ContextCompat.getColor() - 如果你有 api 23 及以上,你可以使用这个函数来改变按钮的背景颜色,它需要两个参数
第一个是上下文,第二个参数是颜色,你想把它作为按钮的背景。
button1.setOnClickListener.... 方法 - 当您单击按钮时将调用此方法,因此当您单击按钮时可以显示您想要的问题。