1
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;
        }

    }

} 

当我单击视图按钮时没有任何反应,我知道视图按钮根本没有与单击方法连接,因为当我在 xml 文件中定义单击方法时它工作正常,请帮助我是 android 编程新手,谢谢

4

5 回答 5

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;
    }
}
于 2013-11-08T12:50:14.703 回答
1

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

于 2013-11-08T12:44:09.673 回答
0

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

于 2013-11-08T12:56:52.093 回答
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;
      }

    }
于 2013-11-08T12:51:18.240 回答
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,这会变得非常混乱,速度非常快。

于 2013-11-08T13:19:18.270 回答