android-studio - 更改android中已回答问题按钮的背景颜色
问题描述
大家好,我正在为我的学期使用 android 进行在线考试......假设我有 10 个问题,一次只显示 1 个问题......以及 10 个 ID 为 button1、button2、button3 的按钮.......点击每个按钮,它会直接跳到相应的问题......例如,如果我点击按钮 5,它将显示问题 5,依此类推............每当回答一个问题时,它的按钮背景色应变为红色......表示它已回答......例如我回答问题 5 然后 button5.backcolor =drawing.color.red...
简而言之,我如何使用循环更改所有按钮的背景色???...在这个我的按钮中有一个片段,我在 recyclerview 中显示我的结果
解决方案
在我的建议中,创建一个名为“已回答”的变量,将其初始化为零,并在用户回答问题时将其设为 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.... 方法 - 当您单击按钮时将调用此方法,因此当您单击按钮时,您可以显示您想要的问题。
推荐阅读
- excel - 我可以过滤数据以显示 VBA 中昨天日期的当前月份吗?
- magento-2.3 - Magneto 2 支付模块 - 无法获取信用卡号
- linkedin-api - LinkedIn REST API call to check my competitor posts
- javascript - How to compare firebase timestamps?
- java - Java9 及更高版本的线程间通信无法正常工作
- php - 编辑外键的下拉列表
- sql-server - SQL Server + Laravel 上的设置选项不正确
- android - 从 Gradle 调用时,CMake 不适用于空格
- mysql - Query showing when a rental is overdue?
- mysql - MySQL:授权中未显示 REQUIRE SSL