简体   繁体   中英

android.content.res.Resources$NotFoundException: Resource ID #0x7f04002b - Error in recycler adapter using fragment

Please let me know where I'm doing the error. I'm implementing a recycler listview in a fragment. When I run the app and press the fragment button I'm getting this error:

09-09 13:26:44.132 31899-31899/xxxxxxx.xxxxxxxmessenger E/RecyclerView: No adapter attached; skipping layout
09-09 13:26:55.725 31899-31899/xxxxxxx.xxxxxxxmessenger E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: xxxxxxx.xxxxxxxmessenger, PID: 31899
                                                                          android.content.res.Resources$NotFoundException: Resource ID #0x7f04002b
                                                                              at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
                                                                              at android.content.res.Resources.loadXmlResourceParser(Resources.java:2101)
                                                                              at android.content.res.Resources.getLayout(Resources.java:1115)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:424)
                                                                              at freemig.freemigmessenger.adapter.ConnectionsAdapter.onCreateViewHolder(ConnectionsAdapter.java:35)
                                                                              at xxxxxxx.xxxxxxxmessenger.adapter.ConnectionsAdapter.onCreateViewHolder(ConnectionsAdapter.java:21)
                                                                              at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6411)
                                                                              at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5597)

Fragment Code

public class All_Connection_fragment extends Fragment {

    AllConnectionService allConnectionsAPIService;
    RecyclerView recyclerView;
    List<ConnectionDatum> connectionData = new ArrayList<>();
    ConnectionsAdapter connectionsAdapter;
    String TimeZone;

    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    private UserAuthenticationKey userAuthenticationKey;


    public All_Connection_fragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }



    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootview = inflater.inflate(R.layout.activity_all_connection_fragment, container, false);

        allConnectionsAPIService = RestClient.getClient().create(AllConnectionService.class);

        recyclerView = rootview.findViewById(R.id.allConnectionsRecyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

        connectionsAdapter= new ConnectionsAdapter(connectionData,R.layout.all_connection_list,
                getActivity().getApplicationContext());
                recyclerView.setAdapter(connectionsAdapter);

        userAuthenticationKey = new UserAuthenticationKey(getActivity());
        sharedPreferences =  this.getActivity().getSharedPreferences("user authentication", MODE_PRIVATE);
        editor = sharedPreferences.edit();

        TimeZone = "0";

        connectionsList();


        Thread t = new Thread() {

            @Override
            public void run() {
                try {
                    while (!isInterrupted()) {
                        Thread.sleep(1000);
                        getActivity().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                // update TextView here!
                                connectionsList();
                            }
                        });
                    }
                } catch (InterruptedException e) {
                }
            }
        };
        t.start();


        return rootview;
    }

    private void connectionsList() {
        final ConnectionRequest connectionRequest = new ConnectionRequest(
                TimeZone.toString(),
                userAuthenticationKey.getUserId().toString());

        Call<ConnectionResponse> call = allConnectionsAPIService.allConnection(userAuthenticationKey.getUserTokenKey(),connectionRequest);
        call.enqueue(new Callback<ConnectionResponse>() {
            @Override
            public void onResponse(Call<ConnectionResponse> call, Response<ConnectionResponse> response) {
//                Toast.makeText(AllConnectionActivity.this, "" +response.body() , Toast.LENGTH_LONG).show();
                connectionData.addAll(response.body().getData());
                connectionsAdapter.notifyDataSetChanged();
            }

            @Override
            public void onFailure(Call<ConnectionResponse> call, Throwable t) {
                Toast.makeText(getActivity(), "All connection list doesn't response, Please try again",
                        Toast.LENGTH_LONG).show();
            }
        });
    }
}

Adapter code

public class ConnectionsAdapter extends RecyclerView.Adapter<ConnectionsAdapter.ConnectionsViewHolder> {

    private List<ConnectionDatum> connectionData;
    private int rowLayout;
    private Context context;

    public ConnectionsAdapter(List<ConnectionDatum> connectionData, int rowLayout, Context context) {
        this.connectionData = connectionData;
        this.rowLayout = rowLayout;
        this.context = context;
    }

    @Override
    public ConnectionsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.all_connection_list, parent,false);
        return new ConnectionsViewHolder(view);
    }


    @Override
    public void onBindViewHolder(ConnectionsViewHolder holder, int position) {

        holder.avater.setTag(connectionData.get(position).getAvatar());
        holder.username.setText(connectionData.get(position).getFullName());
    }


    @Override
    public int getItemCount() {
        return connectionData.size();
    }


    public class ConnectionsViewHolder extends RecyclerView.ViewHolder {
        ImageView avater;
        TextView username;

        public ConnectionsViewHolder(View itemView) {
            super(itemView);

            avater = itemView.findViewById(R.id.avatar);
            username = itemView.findViewById(R.id.username);
        }
    }
}

You are not getting reference of recyclerView so, Please refer below link:

Android Resources$NotFoundException: Resource ID #0x7f030027

or

Check "allConnectionsRecyclerView" this id is same in your xml file

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM