-2

我在旧帖子上遇到了类似的问题..纠正了它们。仍然遇到强制关闭问题。请帮忙。

以下哪项是正确的?

Button continueButton = (Button) findViewById(R.id.continue_button);

或者

View continueButton = findViewById(R.id.continue_button);

他们之间有什么区别?


package org.example.sudoku;

import android.os.Bundle;


import android.view.View.OnClickListener;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;

public class Sudoku extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);    
        setContentView(R.layout.main);

       Button continueButton = (Button) findViewById(R.id.continue_button);
       continueButton.setOnClickListener((OnClickListener) this);

       Button aboutButton = (Button)findViewById(R.id.about_button);
       aboutButton.setOnClickListener((OnClickListener) this);

       Button newButton = (Button)findViewById(R.id.new_game_button);
       newButton.setOnClickListener((OnClickListener) this);

       Button exitButton = (Button)findViewById(R.id.exit_button);
       exitButton.setOnClickListener((OnClickListener) this);


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

4

2 回答 2

0

两者都是正确的,因为Button是 的子类View。但是您通常必须使用它Button,以便您可以向其添加侦听器和其他东西。

你真的应该看看你的应用程序的 logcat 输出。在那里,您会找到一个堆栈跟踪,可以帮助您识别问题。

于 2012-08-26T16:04:58.923 回答
0

我认为问题出在您在按钮上设置点击侦听器的方式上。您使用它,但您的活动类没有实现该接口。我建议你这样做:

 View.OnClickListener clickHandler = new View.OnClickListener() {
    public void onClick(View v) {

    }
  }

  Button continueButton = (Button) findViewById(R.id.continue_button);
  continueButton.setOnClickListener(clickHandler);+-
于 2012-08-26T16:12:31.187 回答