首页 > 解决方案 > 更改android中已回答问题按钮的背景颜色

问题描述

大家好,我正在为我的学期使用 android 进行在线考试......假设我有 10 个问题,一次只显示 1 个问题......以及 10 个 ID 为 button1、button2、button3 的按钮.......点击每个按钮,它会直接跳到相应的问题......例如,如果我点击按钮 5,它将显示问题 5,依此类推............每当回答一个问题时,它的按钮背景色应变为红色......表示它已回答......例如我回答问题 5 然后 button5.backcolor =drawing.color.red...

简而言之,我如何使用循环更改所有按钮的背景色???...在​​这个我的按钮中有一个片段,我在 recyclerview 中显示我的结果

标签: android-studioandroid-fragmentsbutton

解决方案


在我的建议中,创建一个名为“已回答”的变量,将其初始化为零,并在用户回答问题时将其设为 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.... 方法 - 当您单击按钮时将调用此方法,因此当您单击按钮时,您可以显示您想要的问题。


推荐阅读