gpt4 book ai didi

java - RecyclerView 没有设置适配器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:25 25 4
gpt4 key购买 nike

<分区>

我在一个 fragment 中有三个回收站 View 。我已经为其中两个设置了适配器。但是,一个回收者 View 会夸大卡片 View ,而另一个则不会。

我调试了代码,未显示的回收器 View 适配器未被调用。

这是我在 fragment 中的 onViewCreated() 方法

public void onViewCreated(View view, @NonNull Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

recyclerViewVendors = view.findViewById(R.id.rcyview_vendors);
recyclerViewEvents = view.findViewById(R.id.rcyview_home_events);
String json;
try{

InputStream is = getActivity().getAssets().open("vendorServices.json");
int size = is.available();
byte[] buffer = new byte[size];
if(is.read(buffer) == -1){
throw new EOFException();
}
is.close();
json = new String(buffer, StandardCharsets.UTF_8);

JSONObject object = new JSONObject(json);
JSONArray j_Array = object.getJSONArray("vendorServices");

for(int i=0;i<j_Array.length();i++){
JSONObject jo_inside = j_Array.getJSONObject(i);
myDatasetVendors.add(new VendorService(
jo_inside.getString("name"),
jo_inside.getString("img")
));
}


is = getActivity().getAssets().open("activities.json");
size = is.available();
buffer = new byte[size];
if (is.read(buffer) == -1) {
throw new EOFException();
}

is.close();
json = new String(buffer, StandardCharsets.UTF_8);

JSONObject obj = new JSONObject(json);
JSONArray m_jArray = obj.getJSONArray("Activities");

for (int i = 0; i < m_jArray.length(); i++) {
JSONObject jo_inside = m_jArray.getJSONObject(i);
myDatasetEvents.add(jo_inside.getString("title"));
}

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



layoutManagerVendors = new LinearLayoutManager(this.getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerViewVendors.setLayoutManager(layoutManagerVendors);

mAdapterVendors = new AdapterVendorServices(myDatasetVendors, this.getContext());
recyclerViewVendors.setAdapter(mAdapterVendors);

layoutManagerEvents = new LinearLayoutManager(this.getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerViewEvents.setLayoutManager(layoutManagerEvents);

mAdapterEvents = new AdapterHomeEvents(myDatasetEvents, this.getContext());
recyclerViewEvents.setAdapter(mAdapterEvents);
}


这是我的适配器,没有被调用

public class AdapterHomeEvents extends RecyclerView.Adapter<AdapterHomeEvents.MyViewHolder> {
ArrayList<String> mDataset;
Context context;

public AdapterHomeEvents(ArrayList<String> mDataset, Context context) {
this.mDataset = mDataset;
this.context = context;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_view_home_events, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(mDataset.get(position));
}

@Override
public int getItemCount() {
return mDataset.size();
}

static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;

MyViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.txt_crdViewHome_events);
}
}
}

我希望它用卡片 View 填充我的两个回收 View ,但它只填充一个回收器 View ,而不会填充另一个。

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