|
本来是想做一个取色器,但是运行时总是会报一个错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference
在网上找了半天没有答案 最后在stackoverflow上发现,是在创建dialog时出的错误"
dialog = new ColorPickerDialog(context, tvText.getTextColors().getDefaultColor(),
getResources().getString(R.string.btn_color_picker),
new ColorPickerDialog.OnColorChangedListener() {
@Override
public void colorChanged(int color) {
tvText.setTextColor(color);
}
});
dialog.show();
上述虽然方法接收的是一个context,但是缺需要传入一个Activity,因为之后Activity才能够添加窗口
所以应该改为:
dialog = new ColorPickerDialog(MainActivity.this, tvText.getTextColors().getDefaultColor(),
getResources().getString(R.string.btn_color_picker),
new ColorPickerDialog.OnColorChangedListener() {
@Override
public void colorChanged(int color) {
tvText.setTextColor(color);
}
});
dialog.show();
这样就不会有问题出现了.
|