如何使用cwac的ColorMixer中的getColor方法?

时间:2012-07-02 19:03:35

标签: android commonsware-cwac

我正在尝试为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();是崩溃的行。

2 个答案:

答案 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