星空ξ彼岸 2022-02-28 12:14 采纳率: 0%
浏览 93

Fragment中的OkHttp网络请求无效

public class TabFragment extends Fragment {
    public static final String REQUEST_TASK_DETAILS = "http://10.16.90.55:8080/task/task_list_data.json";
    private XRecyclerView xrv;
    private TextView tv_back, tv_title;
    private RelativeLayout rl_title_bar;
    private List<TaskBean.Data> mList = new ArrayList<>();
    private TaskXRecyclerViewAdapter mAdapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View rootView = inflater.inflate(R.layout.fragment_tab, container, false);
        tv_back=rootView.findViewById(R.id.tv_back);
        tv_back.setVisibility(View.GONE);
        tv_title=rootView.findViewById(R.id.tv_title);
        tv_title.setText("用户历史记录");
        rl_title_bar = rootView.findViewById(R.id.title_bar);
        rl_title_bar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.nbule));
        xrv=rootView.findViewById(R.id.xrv);
        xrv.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,
                false)); //列表方向纵向
        xrv.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));//设置分割线
        TaskXRecyclerViewAdapter mAdapter = new TaskXRecyclerViewAdapter(getActivity(),mList);//创建 adapter
        xrv.setAdapter(mAdapter);
        mAdapter.setOnItemClickListener(new TaskXRecyclerViewAdapter.onItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                Toast.makeText(getActivity()," "+position, Toast.LENGTH_SHORT).show();
            }
        });
        initData();
        return rootView;
    }

    private void initData() {
        OkHttp3Utils.doGet(REQUEST_TASK_DETAILS, new Callback() {
            @Override
            public void onFailure(@NonNull Call call, @NonNull IOException e) {
                Toast.makeText(getActivity(), "网络连接失败", Toast.LENGTH_SHORT).show();
            }

            @SuppressLint("NotifyDataSetChanged")
            @Override
            public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
                Gson gson = new Gson();
                String u = Objects.requireNonNull(response.body()).string();
                Log.d("u","run:"+u);
                Type type = new TypeToken<List<TaskBean.Data>>() {}.getType();
                mList=gson.fromJson(u,type);
                Log.d("mList","run:"+mList);
                //判断call,如果返回ture就继续执行,否则就不行
                if (response.isSuccessful()) {
                    //对UI操作 分线程处理
                    Objects.requireNonNull(getActivity()).runOnUiThread(() -> {
                        //创建适配器
                        TaskXRecyclerViewAdapter mAdapter= new TaskXRecyclerViewAdapter(getContext(),mList);
                        //设置适配器
                        xrv.setAdapter(mAdapter);
                        //刷新适配器
                        mAdapter.notifyDataSetChanged();
                    });
                }
            }
        });
    }
}

这是我的代码,可以展示出布局 但是无法生成item 在activity中可以正常使用 在logcat中也没有mList的数据

  • 写回答

2条回答 默认 最新

  • wresource Android领域优质创作者 2022-02-28 12:58
    关注

    这个网络的ip地址换成127等开头的试试,应该是网络请求失败导致的

    评论

报告相同问题?

问题事件

  • 创建了问题 2月28日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?