gpt4 book ai didi

android - recyclerview 列表未显示在 android 中

转载 作者:行者123 更新时间:2023-12-04 10:38:43 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is a NullPointerException, and how do I fix it?

(12 个回答)


12 个月前关闭。




嗨,在下面的代码中,我正在向 account_name 添加值,然后使用该适配器执行 set adapter.response 来服务器,但值没有添加到列表中,并且列表也在显示。

用于显示使用 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);

}

MyAdapter.java:
   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);
}

}
}

最佳答案

您收到此错误是因为您调用了 inflate来自 null 的方法引用( inflater )。

您必须初始化您的 inflater像下面。

@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;
}

关于android - recyclerview 列表未显示在 android 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60033804/

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