创建dialog时传入content的错误

来源:互联网 发布:守望先锋录制软件 编辑:程序博客网 时间:2024/05/22 12:29

本来是想做一个取色器,但是运行时总是会报一个错误:

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();

这样就不会有问题出现了.


0 0