创建dialog时传入content的错误

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值