创建dialog时传入content的错误

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 23:09   180   0

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

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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP