gpt4 book ai didi

java - 找不到 Fragment 中的 RecyclerView - 空对象引用

转载 作者:行者123 更新时间:2023-11-30 01:20:20 25 4
gpt4 key购买 nike

<分区>

我使用了本教程 https://www.learn2crack.com/2016/02/recyclerview-json-parsing.html在我的应用程序中解析 JSON。我在 Android Studio 中使用了选项卡式模板。我添加了两个 fragment ,VFragment 应该显示 JSON。 MainActivity 教程中的代码(在教程中)我放入了 VFragment。我的 fragment_v 布局也有 recyclerview 元素。

VFragment.java:

package com.tomwellmann.apptodate;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import java.util.ArrayList;
import java.util.Arrays;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class VFragment extends Fragment {
private RecyclerView recyclerView;
private ArrayList<AndroidVersion> data;
private DataAdapter adapter;

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

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
initViews();
return inflater.inflate(R.layout.fragment_v, container, false);
}

private void initViews(){
recyclerView = (RecyclerView)getActivity().findViewById(R.id.card_recycler_view);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
loadJSON();
}

private void loadJSON(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://api.learn2crack.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface request = retrofit.create(RequestInterface.class);
Call<JSONResponse> call = request.getJSON();
call.enqueue(new Callback<JSONResponse>() {

@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
JSONResponse jsonResponse = response.body();
data = new ArrayList<>(Arrays.asList(jsonResponse.getAndroid()));
adapter = new DataAdapter(data);
recyclerView.setAdapter(adapter);
}

@Override
public void onFailure(Call<JSONResponse> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
}

日志:

Process: com.tw.a, PID: 6653 java.lang.NullPointerException: 
Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)'
on a null object reference at com.tw.a.VFragment.initViews(VFragment.java:46)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com