简体   繁体   English

在RecyclerView适配器中收到“尝试调用虚拟方法”错误。 请查看详细信息

[英]Getting a 'Attempt to invoke virtual method' error in RecyclerView Adapter. Please see details

I have a recyclerview for which I have an adapter. 我有一个带有适配器的recyclerview。

The problem is that I am getting this error: Attempt to invoke virtual method 'android.support.v4.app.FragmentActivity android.support.v4.app.Fragment.getActivity()' on a null object reference at com.abc.xyz.RVAdapterAAR.onBindViewHolder(RVAdapterAAR.java:82) in the following code: 问题是我遇到此错误: Attempt to invoke virtual method 'android.support.v4.app.FragmentActivity android.support.v4.app.Fragment.getActivity()' on a null object reference at com.abc.xyz.RVAdapterAAR.onBindViewHolder(RVAdapterAAR.java:82)中的以下代码:

public class RVAdapterAAR extends RecyclerView.Adapter<RVAdapterAAR.PersonViewHolder> {

    public static class PersonViewHolder extends RecyclerView.ViewHolder {

        CardView cardView;
        TextView nPicTag;
        ImageView hImage;
        TextView nDescriptionTag;
        TextView hDescription;
        TextView hLocation;
        SupportMapFragment mapFragment;
        Button btn_accept;
        Button btn_share;
        TextView postDate;
        TextView postTime;
        TextView postedBy;

        PersonViewHolder(View itemView) {
            super(itemView);
            cardView = (CardView) itemView.findViewById(R.id.card_accept_request);
            nPicTag = (TextView) itemView.findViewById(R.id.needy_pic_tag);
            hImage = (ImageView) itemView.findViewById(R.id.h_pic_accept);
            nDescriptionTag = (TextView) itemView.findViewById(R.id.n_description_tag);
            hDescription = (TextView) itemView.findViewById(R.id.h_description_accept);
            hLocation = (TextView) itemView.findViewById(R.id.currentCoordinatesTagAccept);
            mapFragment = (SupportMapFragment) mapFragment.getActivity().getSupportFragmentManager().findFragmentById(R.id.map_fragment);
            btn_accept = (Button) itemView.findViewById(R.id.btn_accept);
            btn_share = (Button) itemView.findViewById(R.id.btn_share);
            postDate = (TextView) itemView.findViewById(R.id.post_date);
            postTime = (TextView) itemView.findViewById(R.id.post_time);
            postedBy = (TextView) itemView.findViewById(R.id.posted_by);
        }

    }

    List<ListContentAAR> listContentAARs;

    RVAdapterAAR(List<ListContentAAR> listContentAARs) {
        this.listContentAARs = listContentAARs;
    }

    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fragment_accept_a_request, viewGroup, false);
        PersonViewHolder personViewHolder = new PersonViewHolder(view);
        return personViewHolder;
    }

    public void onBindViewHolder (PersonViewHolder personViewHolder, int i) {
        personViewHolder.nPicTag.setText(listContentAARs.get(i).nPicTag);
        personViewHolder.hImage.setImageBitmap(listContentAARs.get(i).hImage);
        personViewHolder.nDescriptionTag.setText(listContentAARs.get(i).nDescriptionTag);
        personViewHolder.hDescription.setText(listContentAARs.get(i).hDescription);
        personViewHolder.hLocation.setText(listContentAARs.get(i).hLocation);
        personViewHolder.mapFragment.getActivity().getSupportFragmentManager().findFragmentById(R.id.map_fragment);
        personViewHolder.btn_accept.findViewById(R.id.btn_accept);
        personViewHolder.btn_share.findViewById(R.id.btn_share);
        personViewHolder.postDate.setText(listContentAARs.get(i).postDate);
        personViewHolder.postTime.setText(listContentAARs.get(i).postTime);
        personViewHolder.postedBy.setText(listContentAARs.get(i).postedBy);
    }

    public int getItemCount() {
        return listContentAARs.size();
    }

}

Please let me know why am I getting this error. 请让我知道为什么我会收到此错误。

Sorry for bad format of question, I'm still learning how to post good questions. 抱歉,问题格式错误,我仍在学习如何发布好的问题。

Thanks in advance. 提前致谢。

mapFragment is null. mapFragment为null。 findFragmentById can return null if it doesn't find the fragment (because it's not attached to the activity, for instance) 如果找不到片段,则findFragmentById可以返回null(例如,因为它未附加到活动中)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 遇到错误 Attempt to invoke virtual method &#39;RecyclerView.setAdapter(RecyclerView$Adapter)&#39; on a null object reference in Android Studio - Encountered the error Attempt to invoke virtual method 'RecyclerView.setAdapter(RecyclerView$Adapter)' on a null object reference in Android Studio 点击recyclerView new activity Error Attempt to invoke virtual method - Click recyclerView new activity Error Attempt to invoke virtual method 尝试在空对象引用 Android 适配器上调用虚拟方法 - Attempt to invoke virtual method on a null object reference Android Adapter 尝试调用虚方法 - Attempt to invoke virtual method 获取当前位置时尝试调用虚拟方法 - Attempt to invoke virtual method when getting current location 尝试调用虚拟方法 &#39;void androidx.recyclerview.widget.RecyclerView.setHasFixedSize(boolean) - Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setHasFixedSize(boolean) Null 带有片段的指针异常 - 尝试调用虚拟方法 'void androidx.recyclerview.widget.RecyclerView.setHasFixedSize(boolean)' - Null Pointer Exception with Fragment - Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setHasFixedSize(boolean)' 尝试在 onClickListener 中调用虚方法 - Attempt to invoke virtual method in onClickListener 尝试在Android上调用虚拟方法 - Attempt to invoke virtual method on Android 尝试调用虚拟方法Editable - Attempt to invoke virtual method Editable
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM