2017-04-17 49 views
0

我在Android中开发测验应用程序。 我想在单个活动中显示所有问题。当用户选择一个选项时,如果它是正确的,则设置颜色为绿色,如果为false,则将颜色设置为红色。并获得新的问题和选择。我写了一篇关于onClick事件代码:如何在Android中立即反映settingBackground

public void onClickChoice(View v) { 
    String text = ((TextView) v).getText().toString(); 

    if (text == currentAnswer) { 
     v.setBackgroundColor(getResources().getColor(newGreen)); 
    } else { 
     v.setBackgroundColor(getResources().getColor(newRed)); 
    } 

    setNewQuestion(); 
} 

当运行应用程序时,我回答第一个问题和第二个问题来了,第二个问题的选择的颜色被改变。 我该如何解决这个问题。

回答

0

何不在该类实现setOnClickLisenter();尝试

+0

我试过了。同样的事情发生 –

0

使用

v.setBackgroundResource(R.color.red); //or green, blue,... 

原来的答复:here

+0

不幸的是,不起作用 –

+0

@MHilmiKoca从我的理解,你想看到背景的变化。那么,如果你改变它,然后跳到另一个问题,当你在另一个问题的背景中时,第二个背景当然是绿色/红色。所以你必须等待。问题在哪里?你能更好地解释自己吗? – Curio

+0

我在第一个问题上看不到新的颜色(绿色/红色)。立即(或3秒后)第二个问题以红色/绿色出现。 我的期望是我回答第一个问题,选择的颜色是变化。并用默认颜色获得第二个问题。我回答第二个问题,其选择的颜色是变化。等 –

0

这是在列表或回收的看法?

如果是这样,每个视图都会被回收,所以您需要在每个视图启动时专门设置背景颜色。

+0

我使用问题列表 –

+0

你可以在你的Adapter.getView(),我会看看我是否可以帮忙。 –

+0

我使用minSdkVersion是14.我可以这样做 –