Android 如何从API解析JSON响应

Android 如何从API解析JSON响应,android,json,parsing,Android,Json,Parsing,我正在尝试获取json数据并将其放在ListView中。我遵循一个教程,并试图实现这一点。问题是:本教程基于AppCompatActivity,我正在尝试将其添加到片段中(选项卡): public类InstallsTab扩展片段{ ListView安装; 字符串url=”http://localhost/android.php"; 进度条对话框; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 最终视图根视图=充气机。充气(R.

我正在尝试获取json数据并将其放在ListView中。我遵循一个教程,并试图实现这一点。问题是:本教程基于
AppCompatActivity
,我正在尝试将其添加到
片段中(选项卡):

public类InstallsTab扩展片段{
ListView安装;
字符串url=”http://localhost/android.php";
进度条对话框;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(R.layout.u选项卡,容器,false);
installs=rootView.findviewbyd(R.id.install\u列表);
dialog=newprogressbar(getActivity().getApplicationContext());
对话框.setVisibility(View.VISIBLE);
StringRequest=newStringRequest(url,new Response.Listener()){
@凌驾
公共void onResponse(字符串){
parseJsonData(字符串);
}
},new Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
Toast.makeText(getActivity().getApplicationContext(),“发生了一些错误!!”,Toast.LENGTH\u SHORT.show();
对话框.setVisibility(View.GONE);
}
});
RequestQueue rQueue=Volley.newRequestQueue(getActivity().getApplicationContext());
rQueue.add(请求);
返回rootView;
}
void parseJsonData(字符串jsonString){
试一试{
JSONObject对象=新的JSONObject(jsonString);
JSONArray FROUTSARray=object.getJSONArray(“水果”);
ArrayList al=新的ArrayList();
对于(int i=0;i


应用程序在运行时崩溃。

您尚未正确初始化阵列列表

用这个

ArrayList<String> al = new ArrayList<>();
编辑

同时将此用法更改为
i++
,而不是
++i

for(int i = 0; i < fruitsArray.length(); i++) {

    al.add(fruitsArray.getString(i));
}
for(int i=0;i
share error logcat..请调试代码并获取崩溃点或共享日志在问题中添加您的回答。共享错误即coming@user3449848请检查我更新的ans。虽然您的版本更好,但这并不能解释崩溃。您在
el上的参考警告消失了。添加
。新的数组适配器(getActivity().getApplicationContext(),android.R.layout.simple\u list\u item\u 1,al)怎么样?我可以退出吗?像这样使用ArrayAdapter=newArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,al);安装.setAdapter(适配器)@用户3449848很高兴帮助您。编码很愉快。你们很有帮助。没有你的帮助,我什么都学不好。特别感谢stackoverflow.com
ArrayList al = new ArrayList();
for(int i = 0; i < fruitsArray.length(); i++) {

    al.add(fruitsArray.getString(i));
}