【问题标题】:How to use the getColor method from cwac's ColorMixer?如何使用 cwac 的 ColorMixer 中的 getColor 方法?
【发布时间】:2014-06-22 06:53:28
【问题描述】:

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

【问题讨论】:

  • 您很可能没有在正确的位置搜索 ColorMixer(或者您的布局没有 ID 为 R.id.mixerColorMixer 元素)。
  • 谢谢 luksprog - 结果它崩溃了,因为我试图在弹出窗口中运行 openColor 方法,而我需要做的不是使用单独的方法,而是输入名称我的弹出窗口(见stackoverflow.com/questions/8595427/…) - 我会尽快添加这个作为答案(像我这样无法回答任何问题的人不能在8小时内发布答案)

标签: android commonsware-cwac


【解决方案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;
    }
});

【讨论】:

  • 抱歉浪费您的时间 - 找到了答案,只需要等待 8 小时才能回答我自己的问题
【解决方案2】:

谢谢 luksprog - 结果它崩溃了,因为我试图在弹出窗口中运行 openColor 方法,而我需要做的不是使用单独的方法,而是输入弹出窗口的名称(见Android: popUp and button to dismiss doesnt work

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多