在Android中从JSON中获取数据并在RecyclerView中显示的步骤如下:
implementation 'androidx.recyclerview:recyclerview:1.2.1'
public class Person {
private String name;
private int age;
// 构造函数、Getter和Setter方法
}
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 创建一个适配器实例,并将其设置给RecyclerView
PersonAdapter adapter = new PersonAdapter();
recyclerView.setAdapter(adapter);
public class PersonAdapter extends RecyclerView.Adapter<PersonAdapter.PersonViewHolder> {
private List<Person> personList;
// 构造函数和ViewHolder类的实现
@NonNull
@Override
public PersonViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_person, parent, false);
return new PersonViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull PersonViewHolder holder, int position) {
Person person = personList.get(position);
holder.nameTextView.setText(person.getName());
holder.ageTextView.setText(String.valueOf(person.getAge()));
}
@Override
public int getItemCount() {
return personList.size();
}
// ViewHolder类的定义
static class PersonViewHolder extends RecyclerView.ViewHolder {
TextView nameTextView;
TextView ageTextView;
PersonViewHolder(View itemView) {
super(itemView);
nameTextView = itemView.findViewById(R.id.nameTextView);
ageTextView = itemView.findViewById(R.id.ageTextView);
}
}
}
try {
JSONArray jsonArray = new JSONArray(jsonString);
List<Person> personList = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
Person person = new Person(name, age);
personList.add(person);
}
adapter.setPersonList(personList);
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
以上步骤中,我们假设你已经创建了一个RecyclerView,并且在布局文件中定义了一个名为"item_person"的布局,用于显示每个人的姓名和年龄。你需要根据实际情况进行相应的布局和命名调整。
这是一个简单的从JSON中获取数据并在RecyclerView中显示的示例。你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云