Pur*_*mar 1 android listview android-studio android-recyclerview
我正在 Recyclerview 中创建一个列表视图。我正在使用在线获取的数据填充 Recyclerview。RecyclerView 正在正确填充。我想在运行时单击按钮时填充列表视图。我正在为按钮定义 onClickListener,单击按钮时我将获取数据并填充将设置为列表视图的适配器。但数据没有反映在列表视图中。
按钮的 onClickListener
holder.arrow_up.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new LoadClothes().execute(order.getOrderId());
}
});
Run Code Online (Sandbox Code Playgroud)
用于加载列表视图详细信息的异步任务
private class LoadClothes extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... strings) {
String string = "";
try {
Request request = new Request.Builder()
.url(ORDERCLOTHES)
.addHeader("token", BaseApplication.getToken())
.addHeader("orderId", strings[0])
.build();
Response response = client.newCall(request).execute();
string = response.body().string();
Logger.d(string);
} catch (IOException e) {
e.printStackTrace();
}
return string;
}
@Override
protected void onPostExecute(String string) {
super.onPostExecute(string);
Logger.d(string);
Gson gson = new Gson();
Type type = new TypeToken<List<OrderedCloth>>() {
}.getType();
cloths = gson.fromJson(string, type);
viewHolder.listView.setVisibility(ListView.VISIBLE);
CustomListOrderAdapter adapter = new CustomListOrderAdapter(context, cloths);
viewHolder.listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你不必这样做。只需创建一个回收器视图,并在其中创建一个方向为“垂直”的 LinearLayout 而不是 listView。现在,在 recyclerView 的 OnBindViewHolder 中,只需运行一个循环,直到 list.size() 为止,并使用 addView() 继续在 LinearLayout 中膨胀视图。在for循环之前只需removeAllView()。这将会起作用并且不会使滚动成为糟糕的体验。
| 归档时间: |
|
| 查看次数: |
6944 次 |
| 最近记录: |