recyclerview列表未在android中显示

recyclerview列表未在android中显示,android,android-recyclerview,Android,Android Recyclerview,Hi在下面的代码中,值am将值添加到帐户\ U名称,然后使用该适配器执行设置适配器。服务器将收到响应,但值不会添加到列表中,列表也会显示 用于显示,使用recyclerview显示值 谁能帮我一下,哪里出了错 错误: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.LayoutInflater.inflate(int, android.view.Vie

Hi在下面的代码中,值am将值添加到帐户\ U名称,然后使用该适配器执行设置适配器。服务器将收到响应,但值不会添加到列表中,列表也会显示

用于显示,使用recyclerview显示值

谁能帮我一下,哪里出了错

错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean)' on a null object reference
        at com.genworks.oppm.Adapter.MyAdapter.onCreateViewHolder(MyAdapter.java:32)
        at com.genworks.oppm.Adapter.MyAdapter.onCreateViewHolder(MyAdapter.java:19)
更新代码:

Activity.java:

for(SyncBlocks syncBlocks1:syncBlocks){

                        String label=syncBlocks1.getLabel();

                        ArrayList<SynFields> synFields=syncBlocks1.getFields();

                        ArrayList<SynFields> jsonArray=syncBlocks1.getFields();

                        for(SynFields synFields1:synFields){

                            String name=synFields1.getName();

                            Object values = synFields1.getValue().toString();

                            try {

                                if (values instanceof JSONObject) {
                                    JSONObject jsonObject1 = new
                                            JSONObject(String.valueOf(synFields1.getValue()));
                                    String value=jsonObject1.getString("value");
                                }else if (values instanceof String) {
                                    //here, you get string

                                     String value =  synFields1.getValue().toString();
                                    //account_name.addAll(value);
                                    String value_names= String.valueOf(synFields1.getValue());
                                   // Log.e("account_name", String.valueOf(account_name.add(value)));
                                    account_name.add(value_names);

                                    //account_name.add(value);

                                }

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }

                        myAdapter = new MyAdapter(getContext(),account_name);
                        recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
                        recyclerView.setAdapter(myAdapter);

                    }
   public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

    private LayoutInflater inflater;
    private Context mContext;
    private ArrayList<String> mSynFields=new ArrayList<>();

    public MyAdapter(Context context, ArrayList<String> synFieldsArrayList) {
        mContext=context;
        mSynFields=synFieldsArrayList;
    }
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = inflater.inflate(R.layout.fragment_account, parent, false);
        MyViewHolder holder = new MyViewHolder(view);

        return holder;
    }

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

       holder.name.setText(mSynFields.get(position));


    }

    @Override
    public int getItemCount() {

        return mSynFields.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder{

        TextView country, name, city;
        ImageView iv;

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

            country = (TextView) itemView.findViewById(R.id.headingText);
            name = (TextView) itemView.findViewById(R.id.subHeaderText);
            city = (TextView) itemView.findViewById(R.id.subHeadingText);
        }

    }
}
for(SyncBlocks syncBlocks1:SyncBlocks){
String label=syncBlocks1.getLabel();
ArrayList synFields=syncBlocks1.getFields();
ArrayList jsonArray=syncBlocks1.getFields();
用于(SynFields synFields1:SynFields){
String name=synFields1.getName();
对象值=synFields1.getValue().toString();
试一试{
if(值instanceof JSONObject){
JSONObject JSONObject 1=新建
JSONObject(String.valueOf(synFields1.getValue());
字符串值=jsonObject1.getString(“值”);
}else if(字符串实例的值){
//给,你拿绳子
字符串值=synFields1.getValue().toString();
//账户名称。addAll(值);
String value_names=String.valueOf(synFields1.getValue());
//Log.e(“account_name”,String.valueOf(account_name.add(value)));
帐户名称。添加(值名称);
//账户名称。增加(价值);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
myAdapter=新的myAdapter(getContext(),帐户名称);
setLayoutManager(新的LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(myAdapter);
}
MyAdapter.java:

for(SyncBlocks syncBlocks1:syncBlocks){

                        String label=syncBlocks1.getLabel();

                        ArrayList<SynFields> synFields=syncBlocks1.getFields();

                        ArrayList<SynFields> jsonArray=syncBlocks1.getFields();

                        for(SynFields synFields1:synFields){

                            String name=synFields1.getName();

                            Object values = synFields1.getValue().toString();

                            try {

                                if (values instanceof JSONObject) {
                                    JSONObject jsonObject1 = new
                                            JSONObject(String.valueOf(synFields1.getValue()));
                                    String value=jsonObject1.getString("value");
                                }else if (values instanceof String) {
                                    //here, you get string

                                     String value =  synFields1.getValue().toString();
                                    //account_name.addAll(value);
                                    String value_names= String.valueOf(synFields1.getValue());
                                   // Log.e("account_name", String.valueOf(account_name.add(value)));
                                    account_name.add(value_names);

                                    //account_name.add(value);

                                }

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }

                        myAdapter = new MyAdapter(getContext(),account_name);
                        recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
                        recyclerView.setAdapter(myAdapter);

                    }
   public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

    private LayoutInflater inflater;
    private Context mContext;
    private ArrayList<String> mSynFields=new ArrayList<>();

    public MyAdapter(Context context, ArrayList<String> synFieldsArrayList) {
        mContext=context;
        mSynFields=synFieldsArrayList;
    }
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = inflater.inflate(R.layout.fragment_account, parent, false);
        MyViewHolder holder = new MyViewHolder(view);

        return holder;
    }

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

       holder.name.setText(mSynFields.get(position));


    }

    @Override
    public int getItemCount() {

        return mSynFields.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder{

        TextView country, name, city;
        ImageView iv;

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

            country = (TextView) itemView.findViewById(R.id.headingText);
            name = (TextView) itemView.findViewById(R.id.subHeaderText);
            city = (TextView) itemView.findViewById(R.id.subHeadingText);
        }

    }
}
公共类MyAdapter扩展了RecyclerView.Adapter{ 私人充气机; 私有上下文; private ArrayList mSynFields=new ArrayList(); 公共MyAdapter(上下文上下文,ArrayList synFieldsArrayList){ mContext=上下文; mSynFields=synFieldsArrayList; } @凌驾 公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图=充气机。充气(R.layout.fragment\u帐户,父项,false); MyViewHolder=新的MyViewHolder(视图); 报税表持有人; } @凌驾 公共无效onBindViewHolder(MyViewHolder,int位置){ holder.name.setText(mSynFields.get(position)); } @凌驾 public int getItemCount(){ 返回mSynFields.size(); } 类MyViewHolder扩展了RecyclerView.ViewHolder{ TextView国家、名称、城市; ImageView iv; 公共MyViewHolder(查看项目视图){ 超级(项目视图); country=(TextView)itemView.findViewById(R.id.headingText); name=(TextView)itemView.findViewById(R.id.subHeaderText); city=(TextView)itemView.findViewById(R.id.subHeadingText); } } }
将以下几行放在
for
循环的外部,并将整个列表作为循环内部构建的适配器的参数:

myAdapter = new MyAdapter(getContext(),account_name));
recyclerView.setAdapter(myAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
除上述内容外,您正在传递类型为
ArrayList
account\u name
,而在适配器中,构造函数需要类型为
ArrayList
synFieldsArrayList
。两者必须是同一类型。更改适配器或活动以确保两者的类型相同。
在您的
MyViewHolder
构造函数中,添加:

Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.fragment_account, parent, false);
将代码更改为

ArrayList<SynFields> account_name=new ArrayList();

String label=syncBlocks1.getLabel();

ArrayList<SynFields> synFields=syncBlocks1.getFields();

ArrayList<SynFields> jsonArray=syncBlocks1.getFields();

for(SynFields synFields1:synFields){

String name=synFields1.getName();

   Object values = synFields1.getValue();

      try {

          if (values instanceof JSONObject) {
            JSONObject jsonObject1 = new 
                 JSONObject(String.valueOf(synFields1.getValue()));
          }else if (values instanceof String) {
            //here, you get string
            String value = String.valueOf(synFields1.getValue());
            account_name.add(value);

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

}

myAdapter = new MyAdapter(getContext(),account_name);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));    
recyclerView.setAdapter(myAdapter);
ArrayList account_name=new ArrayList();
String label=syncBlocks1.getLabel();
ArrayList synFields=syncBlocks1.getFields();
ArrayList jsonArray=syncBlocks1.getFields();
用于(SynFields synFields1:SynFields){
String name=synFields1.getName();
对象值=synFields1.getValue();
试一试{
if(值instanceof JSONObject){
JSONObject JSONObject 1=新建
JSONObject(String.valueOf(synFields1.getValue());
}else if(字符串实例的值){
//给,你拿绳子
String value=String.valueOf(synFields1.getValue());
账户名称。增加(价值);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
myAdapter=新的myAdapter(getContext(),帐户名称);
setLayoutManager(新的LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(myAdapter);

之所以出现此错误,是因为您从
null
引用(
充气器
)调用了
充气
方法

您必须初始化
充气机
,如下所示

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        inflater = LayoutInflater.from(parent.getContext()); // add this line.

        //or you can do like below
        // View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_account, parent, false);

        View view = inflater.inflate(R.layout.fragment_account, parent, false);

        MyViewHolder holder = new MyViewHolder(view);

        return holder;
    }

哪个是?发布一些描述请看我更新的代码中的帐户名显示错误顺便说一下,这里有3个右括号:
newmyadapter(getContext(),account\u name.add(value))。应该只有两个。显示的
错误是什么?在活动的哪个函数中触发此代码?声明为ArrayList的帐户名请参阅更新的答案。在适配器中发送的列表类型与接受的列表类型之间存在差异。首先通过在列表变量中循环存储数据信息,然后在循环外部首先确保您的recyclerview