我正在开发与媒体相关的应用程序,因为我需要逐个调用多个Web服务,并使用带有Reviewview的cardview列出这些元素。任何人都可以建议我发行。
提前致谢。 Arasu
答案 0 :(得分:1)
如果我正确地得到它你必须调用几个WS并获取数据。那么你可以使用处理异步请求的Volley或OkHttp来做到这一点。
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
// notify error
}
@Override
public void onResponse(Response response) throws IOException {
// parse the data
}
}
});
准备好数据后,您可以更新recyclerview后面的模型并显示新信息。 如果您在使用RecyclerView时遇到问题,可以创建如下布局:
<RelativeLayout >
<android.support.v7.widget.RecyclerView
android:id="@+id/cardList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
并且每行都有一张卡片(行布局):
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardCornerRadius="4dp"
android:layout_margin="5dp">
.....
</android.support.v7.widget.CardView>
您可以查看显示how to use RecyclerView and CardView的帖子。 希望它能帮到你!
答案 1 :(得分:0)
您可以将从这些Web服务收到的新项目添加到适配器,并在适配器上调用notifyDataSetChanged()
以使新项目显示在Recyclerview
中。像 -
if(mAdapter == null) {
// First item received, adapter not initialized yet.
mAdapter = new CustomAdapter(items);
mRecyclerView.setAdapter(mAdapter);
} else {
// Adapter already exists. Add received items to the adapter.
mAdapter.add(items);
mAdapter.notifyDataSetChanged();
}