单击“视图”时,onClick方法不会触发

时间:2013-11-08 12:41:18

标签: android onclicklistener

package com.example.sudoku;



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import android.view.View.OnClickListener;

public class Sudoku extends Activity implements OnClickListener{
    @Override 
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Set up click listeners for all the buttons
        View continueButton=findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View newButton=findViewById(R.id.new_button);
        newButton.setOnClickListener(this); 
        View aboutButton=findViewById(R.id.about_button);
        aboutButton.setOnClickListener(Sudoku.this);
        View exitButton=findViewById(R.id.exit_button);
        exitButton.setOnClickListener(Sudoku.this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
        case R.id.about_button:
            Intent i=new Intent(Sudoku.this, About.class);
            startActivity(i);
            break;
        case R.id.exit_button:
            finish();
            break;
        }

    }

} 

当我点击视图按钮时没有任何反应 我知道视图按钮根本没有与on click方法相关联,因为当我将click方法定义到x m l文件时它工作正常,任何帮助请我是android编程新手,thnx

5 个答案:

答案 0 :(得分:1)

您没有为其他2个新按钮定义监听器。继续。单击退出按钮,看看它是如何响应的。它完成了申请吗?如果是这样,你就走在了正确的轨道上。

答案 1 :(得分:1)

像这样改变onClick()方法

@Override
public void onClick(View v) {
    switch (v.getId()){
    case R.id.about_button:
        Intent i=new Intent(Sudoku.this, About.class);
        startActivity(i);
        break;
    case R.id.exit_button:
        finish();
        break;
    case R.id.new_button:
        newButtonClicked(); // do your work here
        break;
    case R.id.continue_button:
        continueButtonClicked(); // do work
        break;
    }
}

答案 2 :(得分:0)

也为剩余按钮编写案例

    @Override
    public void onClick(View v) {
    switch (v.getId()){
      case R.id.about_button:
        Intent i=new Intent(Sudoku.this, About.class);
        startActivity(i);
        break;
      case R.id.exit_button:
        finish();
        break;
      case R.id.continueButton:
       //your function
        break;
      case R.id.newButton:
       //your function
        break;
      }

    }

答案 3 :(得分:0)

View exitButton=findViewById(R.id.exit_button);替换为
   View exitButton=(View)findViewById(R.id.exit_button);

答案 4 :(得分:0)

您可能会发现将onClick属性添加到xml更容易。在要处理单击的xml元素中,添加以下行:

android:onClick = "AddViewX"

然后,在您的活动类中,您要创建一个这样的方法:

public void AddViewX(View v){
    //Write Your Code Here
    Intent i=new Intent(this, NextClass.class);
    startActivity(i);
}

这样您就不必设置OnClickListeners,它可能会非常混乱,非常快。