Android:onClickListener无法按编程方式工作

Android:onClickListener无法按编程方式工作,android,onclicklistener,Android,Onclicklistener,android上的测验: 我正在设置一个onClickListener来监视按下了哪个答案按钮,并且我正在尝试从表中访问正确的答案,以检查是否给出了分数。 问题是问题没有改变(本例中的数字) //变量~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 私有文本视图问题框; 专用按钮开始按钮、应答按钮1、应答按钮2、应答按钮3、应答按钮4; 私人放射组放射组1; 私人电台按钮难度轻松电台、难度

android上的测验: 我正在设置一个onClickListener来监视按下了哪个答案按钮,并且我正在尝试从表中访问正确的答案,以检查是否给出了分数。 问题是问题没有改变(本例中的数字)

//变量~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私有文本视图问题框;
专用按钮开始按钮、应答按钮1、应答按钮2、应答按钮3、应答按钮4;
私人放射组放射组1;
私人电台按钮难度轻松电台、难度中等电台、难度硬电台;
私有字符串难度=“容易”;
私人智力得分=0;
int指针=0;
公共字符串正确;//QuestionTables.questionTable[指针].getCorrectAnswer();
//变数~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
startButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
如果(v.getId()==startButton.getId())
{
//设置布局的元素
setContentView(R.layout.activity_playing);
最终视图控制视图=findViewById(R.id.全屏内容控制2);
最终视图contentView=findviewbyd(R.id.fullscreen\u content2);
//用变量连接布局元素
questionBox=(TextView)findViewById(R.id.questionBox);
answerButton1=(按钮)findViewById(R.id.answer_button1);
answerButton2=(按钮)findViewById(R.id.answer\u按钮2);
answerButton3=(按钮)findViewById(R.id.answer\u按钮3);
answerButton4=(按钮)findViewById(R.id.answer\u按钮4);
//更改问题******“指针”和“正确”在全局范围内声明,以避免:
//无法在其他方法错误中定义的内部类中引用非最终变量*****

//不要忘了使用i++,因为i您有很多代码,但我假设这就是问题所在:

controlsView.setOnClickListener(new View.OnClickListener() {
您给
controlsView
一个私有
OnClickListener
,然后期望它处理来自所有按钮的单击事件。这将失败,因为其他按钮没有使用此
OnClickListener

创建一个共享的侦听器

View.OnClickListener listener = new View.OnClickListener() {//..
然后把它传给其他按钮

answerButton1.setOnClickListener (listener);
answerButton2.setOnClickListener (listener);
//etc
您还可以使
活动
实现
OnClickListener
界面

public class MyActivity extends Activity implements OnClickListener{

@Override
public void onClick (View v)
{
 //implementation
}
然后,要设置
OnClickListener
,您需要传递
活动
实例

answerButton1.setOnClickListener (MyActivity.this);

究竟什么是
controlsview
?或者更好的方法是,通过实现该接口将活动转换为OnClickListener,然后将每个按钮的OnClickListener设置为
this
。它成功了!非常感谢您的帮助。实际上,我试图通过将其分配给controlsview来共享侦听器,我认为它将成功地包含所有内容“控制”按钮等。
answerButton1.setOnClickListener (MyActivity.this);