我正在尝试为cwac颜色混合器(https://github.com/commonsguy/cwac-colormixer)实现get color方法,但每次运行此代码时,我都会得到NullPointerException
:
int color = 1;
public void openColor(){
ColorMixer mixer = (ColorMixer)findViewById(R.id.mixer);
if (color!=1){
mixer.setColor(color);
}
color = mixer.getColor();
}
color = mixer.getColor();
是崩溃的行。
答案 0 :(得分:1)
我以前从未使用过这个Commonsware组件,但从查看source code开始,您需要做的就是设置一个监听器/回调。此机制将允许您收到颜色选择中的任何更改的通知。
首先,让您的类实现以下侦听器接口:
public interface OnColorChangedListener {
public void onColorChange(int argb);
}
然后使用:
在ColorMixer上设置监听器public void setOnColorChangedListener(OnColorChangedListener listener) {
this.listener=listener;
}
如果你全部内联,它看起来会像这样:
mixer.setOnColorChangeListener(new ColorMixer.OnColorChangeListener() {
@Override public void onColorChange(int argb) {
//... get the color here; e.g.
color = argb;
}
});
答案 1 :(得分:0)
谢谢luksprog - 事实证明它崩溃了,因为我试图在弹出窗口中运行openColor方法,而我需要做的就是不使用单独的方法而是把我的弹出窗口的名称(见Android: popUp and button to dismiss doesnt work)