我在旧帖子上遇到了类似的问题。纠正了它们。仍然有力量关闭问题。请帮忙。
以下哪项是正确的?
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;
}
}
答案 0 :(得分:0)
两者都是正确的,因为Button
是View
的子类。但是你通常必须使用Button
,这样你就可以添加监听器和其他内容。
您应该看一下应用程序的logcat输出。在那里你会发现一个可以帮助你识别问题的堆栈跟踪。
答案 1 :(得分:0)
我认为问题来自于您在按钮上设置点击侦听器的方式。您使用此但您的活动类不实现该接口。我建议你这样做:
View.OnClickListener clickHandler = new View.OnClickListener() {
public void onClick(View v) {
}
}
Button continueButton = (Button) findViewById(R.id.continue_button);
continueButton.setOnClickListener(clickHandler);+-