gpt4 book ai didi

java - 如何转换 JSON 数组以在 RecyclerView 中使用

转载 作者:行者123 更新时间:2023-12-01 17:55:47 25 4
gpt4 key购买 nike

我有一个新闻 API JSON 链接,我想将其转换为字符串数组,以便我可以在回收 View 中使用它们。

我是Java新手,请帮助我了解如何做到这一点。

我正在尝试使用 Android Networking Library 和 GSON 来实现此目的。

package in.apptonic.lalit.newsapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONArrayRequestListener;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import org.json.JSONArray;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import in.apptonic.lalit.newsapplication.model.News;

public class MainActivity extends AppCompatActivity {

RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
RecyclerView.Adapter adapter;
List<News> newsList = new ArrayList<>();
private Gson gson;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GsonBuilder gsonbuilder = new GsonBuilder();
gsonbuilder.setDateFormat("M/d/yy hh:mm a");
gson = gsonbuilder.create();

AndroidNetworking.initialize(getApplicationContext());

recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
adapter = new AdapterNews(newsList);
recyclerView.setAdapter(adapter);
downloadNews();
}

private void downloadNews() {

AndroidNetworking.get("https://newsapi.org/v1/articles?source=the-next-web&sortBy=latest&apiKey=hidden")
.build()
.getAsJSONArray(new JSONArrayRequestListener() {
@Override
public void onResponse(JSONArray response) {

List<News> news = Arrays.asList(gson.fromJson(String.valueOf(response), News[].class));

//TODO How to convert JSON values n String so that I can send them in adapter for recycler view
}

@Override
public void onError(ANError anError) {


}
});


}
}

最佳答案

首先创建一个列表:

List<String> list = new ArrayList<String>();

然后您可以将 JSONArray 中的字符串值添加到列表中,如下所示:

for (int i = 0; i < response.length(); i++) {
list.add(response.getJSONObject(i).getString("name"));
}

然后将此列表变量传递给您的适配器。

关于java - 如何转换 JSON 数组以在 RecyclerView 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44983556/

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