1
嘿,我目前正在自己的方式进入Android的自定义视图,但我现在遇到了设置侦听器的问题。如果我从自定义视图类中调用监听器,一切正常,但我想从我的MainActivity中设置监听器,这是我现在遇到问题的地方。每次,我从MainActivity调用Listener,我只是得到一个空指针,无论我传递给该方法。这里自定义类Android:跨类开始侦听器
public class RoundKnobButton extends RelativeLayout implements OnGestureListener {
public interface RoundKnobButtonListener {
public void onStateChange(boolean newstate) ;
public void onRotate(int percentage);
}
public RoundKnobButtonListener m_listener;
public void SetListener(RoundKnobButtonListener l) {
m_listener = l;
}
,如果我所说的监听器从这个类中像
SetListener(new RoundKnobButtonListener() {
public void onStateChange(boolean newstate) {
}
public void onRotate(final int percentage) {
System.out.println(percentage);
}
});
它完美地返回值的代码。现在,当我想在我的MainActivity做这样的事情
rv=(RoundKnobButton) findViewById(R.id.jogView);
rv.SetListener(new RoundKnobButton.RoundKnobButtonListener() {
public void onStateChange(boolean newstate) {
}
public void onRotate(final int percentage) {
System.out.println(percentage);
}
});
,我得到
02-10 14:31:45.354: W/dalvikvm(19006): threadid=1: thread exiting with uncaught exception (group=0x418259a8)
02-10 14:31:45.360: E/AndroidRuntime(19006): FATAL EXCEPTION: main
02-10 14:31:45.360: E/AndroidRuntime(19006): java.lang.NullPointerException
02-10 14:31:45.360: E/AndroidRuntime(19006): at .buildUI(.java:191)
02-10 14:31:45.360: E/AndroidRuntime(19006): at .access$6(.java:125)
02-10 14:31:45.360: E/AndroidRuntime(19006): at .onPostExecute(.java:334)
哪里线191指rv.SetListener(new RoundKnobButton.RoundKnobButtonListener()
我已经尝试过通过各种参数与各种演员,但似乎没有任何帮助。
在此先感谢,亚历克斯
你检查RV不为空,有在你的xml布局文件中设置了这个id R.id.jogView? – 2015-02-10 13:58:01
你是对的,它实际上是空的,但现在我想知道为什么它没有得到任何值的findViewById是所有其他(按钮等)的工作。还有什么我需要考虑的吗? – user2875404 2015-02-10 14:10:09