Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改变图像颜色_Java_Android_Android Fragments_Colors_Nullpointerexception - Fatal编程技术网

Java 改变图像颜色

Java 改变图像颜色,java,android,android-fragments,colors,nullpointerexception,Java,Android,Android Fragments,Colors,Nullpointerexception,我目前正在尝试更改imageview的颜色。我正试图从一个片段中执行此操作,在我切换活动之前,它工作正常。当我回到我用来改变图像颜色的片段时,我得到了这个错误 Attempt to invoke virtual method 'int android.content.Context.getColor(int)' on a null object reference 我使用以下代码更改图像的颜色 imgUpvote.setColorFilter(ContextCompat.getColor(ge

我目前正在尝试更改imageview的颜色。我正试图从一个片段中执行此操作,在我切换活动之前,它工作正常。当我回到我用来改变图像颜色的片段时,我得到了这个错误

Attempt to invoke virtual method 'int android.content.Context.getColor(int)' on a null object reference
我使用以下代码更改图像的颜色

imgUpvote.setColorFilter(ContextCompat.getColor(getContext(), R.color.lGrey));
有人知道怎么解决吗?此错误仅在我切换活动时发生,谢谢您的回答

编辑:这里是代码所在的位置

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<postsGetInfo, postsGetInfoViewHolder>(postsGetInfo.class, R.layout.posts_layout,postsGetInfoViewHolder.class,postRef) {
                @Override
                protected void populateViewHolder(final postsGetInfoViewHolder viewHolder, postsGetInfo model, int position) {
                    final String postKey = getRef(position).getKey();
                    UpdateTheDisplayVotes(postKey); //Displays the votes at the start of creation
                    postRef.removeEventListener(VoteListener);

                    defaultVote = VotesRef.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            if (!dataSnapshot.hasChild(postKey)) {
                                VotesRef.child(postKey).child(current_user_id).child("votes").setValue("none");
                            }
                            String voteStatus = dataSnapshot.child(postKey).child(current_user_id).child("votes").getValue().toString();
                           if (voteStatus.equals("upvoted")){
                                ImageView btnUpvote = viewHolder.myView.findViewById(R.id.imgUpvote);
                                ImageView btnDownvote = viewHolder.myView.findViewById(R.id.imgDownvote);
                               btnUpvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.lBlue));
                                btnDownvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.lGrey));
                            }if (voteStatus.equals("downvoted")){
                                ImageView btnUpvote = viewHolder.myView.findViewById(R.id.imgUpvote);
                                ImageView btnDownvote = viewHolder.myView.findViewById(R.id.imgDownvote);
                                btnUpvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.lGrey));
                                btnDownvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.Black));
                            }if (voteStatus.equals("none")){
                                ImageView btnUpvote = viewHolder.myView.findViewById(R.id.imgUpvote);
                                ImageView btnDownvote = viewHolder.myView.findViewById(R.id.imgDownvote);
                                btnUpvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.lGrey));
                                btnDownvote.setColorFilter(ContextCompat.getColor(getActivity(), R.color.lGrey));
                            }
                        }
在你的片段中尝试这样获取上下文

而不是像这样使用

kimgUpvote.setColorFilter(ContextCompat.getColor(mContext, R.color.lGrey));

使用getActivity做同样的事情在使用ImgUpNote.SetColorFilter的地方分享你的代码,给我一秒钟更新帖子,向上投票/向下投票的颜色将在开始时出现。谢谢,我会尝试一下。我喜欢魅力,谢谢你的精彩answer@BenHenderson很高兴帮助你
kimgUpvote.setColorFilter(ContextCompat.getColor(mContext, R.color.lGrey));