Java 无法将值放入数组列表中
我尝试在Java 无法将值放入数组列表中,java,android,android-livedata,android-json,Java,Android,Android Livedata,Android Json,我尝试在blograrepository类中的moviesArrayList中设置值。 但我最终还是找不到结果 我想修改这个示例,使ArrayList中的存储是movies。 所以这个例子是可行的,结果表明这个例子是可行的 json数据: [ { "albumId": 1, "id": 1, "title": "accusamus beatae ad facilis cum similique qui sunt", "u
blograrepository
类中的movies
ArrayList中设置值。
但我最终还是找不到结果
我想修改这个示例,使ArrayList中的存储是movies。
所以这个例子是可行的,结果表明这个例子是可行的
json数据:
[
{
"albumId": 1,
"id": 1,
"title": "accusamus beatae ad facilis cum similique qui sunt",
"url": "https://via.placeholder.com/600/92c952",
"thumbnailUrl": "https://via.placeholder.com/150/92c952"
},
{
"albumId": 1,
"id": 2,
"title": "reprehenderit est deserunt velit ipsam",
"url": "https://via.placeholder.com/600/771796",
"thumbnailUrl": "https://via.placeholder.com/150/771796"
},
{
"albumId": 1,
"id": 3,
"title": "officia porro iure quia iusto qui ipsa ut modi",
"url": "https://via.placeholder.com/600/24f355",
"thumbnailUrl": "https://via.placeholder.com/150/24f355"
}
]
代码:
//
公共类博客库{
私有ArrayList电影=新ArrayList();
私有MutableLiveData MutableLiveData=新的MutableLiveData();
私人申请;
公共博客存储库(应用程序){
这个应用程序=应用程序;
}
公共MutableLiveData getMutableLiveData(){
RestApiService=instance.getApiService();
Call Call=service.getPopularBlog();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
List mBlogWrapper=response.body();
对于(int i=0;i请尝试此代码,抱歉我不在笔记本电脑旁…mybe您可以从中理解。我只是将响应对象切换为列表
,因为您需要它
call.enqueue(new Callback<List<Blog2>>(){
@Override
public void onResponse(Call<List<Blog2>> call, Response<List<Blog2>> response) {
List<Blog2> mBlogWrapper = response.body();
for (int i=0; i<mBlogWrapper.size(); i++) {
movies.add(mBlogWrapper.get(i));
//Log.d("trace_movies : ",""+ movies);
}
}
});
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
List mBlogWrapper=response.body();
对于(int i=0;我猜您的基本url是错误的,json中的data
"这是Array conatins data List mBlogWrapper,但我无法将数据放入movies Array您所做的是映射列表,但json不提供数据
谢谢,但我想练习存储库,我必须在参数内添加。新回调在从响应中获得结果后,您只能生成Blog2
对象。为什么?因为您r json数据不为Blogwrapper提供序列化。如果您想从响应中获取List
,然后更改API jsonOky,我将为Blog2实现序列化,您能通过使用paramater为存储库查看一些代码吗?如果您想处理错误响应,然后在每个方法中创建Blogwrapper
对象(onResponse,onFailure)然后将其设置为blog2
数据,因此,如果出现onFailure,则可以将BlogWrapper设置为error response。这种情况下不需要列表。然后,您的可变LiveData类型应为BlogWrapper
call.enqueue(new Callback<List<Blog2>>(){
@Override
public void onResponse(Call<List<Blog2>> call, Response<List<Blog2>> response) {
List<Blog2> mBlogWrapper = response.body();
for (int i=0; i<mBlogWrapper.size(); i++) {
movies.add(mBlogWrapper.get(i));
//Log.d("trace_movies : ",""+ movies);
}
}
});
public interface RestApiService {
@GET("/photos")
public Call<List<Blog2>> getPopularBlog();
}