当我只是尝试创建一个为每个按钮实现 onTouch 和 onClick 事件的按钮处理类时,我遇到了一个问题。以下组合有效(ButtonClick 是我的课程):
/*Constructor*/
public ButtonClick(View v, int clickType){
if(clickType == 0){
v.setOnClickListener(this);
}
else{
v.setOnTouchListener(this);
}
}
/*Call from Main.java*/
ButtonClick button = new ButtonClick(findViewById(R.id.button, 1);
但是,以下给了我一个 NPE
/*Constructor*/
public ButtonClick(int buttonId, int clickType){
if(clickType == 0){
findViewById(buttonId).setOnClickListener(this);
}
else{
findViewById(buttonId).setOnTouchListener(this);
}
}
/*Call from Main.java*/
ButtonClick button = new ButtonClick(R.id.button, 1);
为什么您不能将 R 配置文件中的整数值作为参数传递而不返回 NPE,至少在这种情况下是这样?