android-fragments 在片段中找不到符号变量R

r55awzrz  于 2022-11-14  发布在  Android
关注(0)|答案(4)|浏览(154)
public class home extends Fragment{

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //returning our layout file
        //change R.layout.yourlayoutfilename for each of your fragments

        postlist = (ListView)getView().findViewById(R.id.postList);
        progressDialog = new ProgressDialog(getActivity());
        progressDialog.setMessage("Loading...");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progressDialog.show();

        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                gson = new Gson();
                list = (List) gson.fromJson(s, List.class);
                postTitle = new String[list.size()];

                for (int i = 0; i < list.size(); ++i) {
                    mapPost = (Map<String, Object>) list.get(i);
                    mapTitle = (Map<String, Object>) mapPost.get("title");
                    postTitle[i] = (String) mapTitle.get("rendered");
                }
                **postlist.setAdapter(new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, postTitle));//R is not Resolved**
                progressDialog.dismiss();

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyerror) {
                Toast.makeText(getActivity(),"Some error occurred", Toast.LENGTH_LONG).show();

            }
        });

        return inflater.inflate(R.layout.home, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //you can set the title for your toolbar here for different fragments different titles
        getActivity().setTitle("Home");
    }
}

出现错误:无法找到符号变量R。如何解决它。相同的代码在活动中运行良好,但在活动中使用时会产生错误。

tkqqtvp1

tkqqtvp11#

我也经历了同样的事。
我尝试按照建议引用rootView,但错误仍然存在。
我尝试了Build-〉clean & rebuild,但错误仍然存在。
我最终删除了我的片段和相应的布局,然后通过android Studio接口重新创建了一个新的片段(New=〉Fragment=〉Fragment(Blank)),并实现了与之前完全相同的代码,而且运行良好。
我知道,这不是你可能正在寻找的解决方案,但在花了太多时间尝试所有的建议后,我发现网上这是唯一的方法,为我工作。

46scxncf

46scxncf2#

尝试使用此方法将控件绑定到片段中

@Nullable
 @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

  View rootView = inflater.inflate(R.layout.home, container, false);

 postlist = (ListView)rootView.findViewById(R.id.postList);

  // your allll code
  return rootView;
}
rjzwgtxy

rjzwgtxy3#

试用此代码

View rootView
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    if (rootView != null) {
        ViewGroup parent = (ViewGroup) rootView.getParent();
        if (parent != null)
            parent.removeView(rootView);
    }
    try {
        rootView = inflater.inflate(R.layout.home, container, false);
    } catch (InflateException e) {

    }


return rootView;
}
js5cn81o

js5cn81o4#

检查导入文件中的android.R并将其删除。
Android Studio有时会在将java代码转换为Kotlin时添加它。

相关问题