我的应用程序从gaurdian新闻api检索数据,并以列表形式显示数据,并使用了客户阵列适配器。每当我运行时,该应用程序什么都不会显示,只是空白。在构建或运行期间没有错误。我找不到我要去哪里了。
请帮忙...
MainActivity类
package com.example.newsapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private final String url = "https://content.guardianapis.com/search?api-key=98c2fc67-0080-4f70-a3b7-fe216828b82d";
private ListView mListView;
private ArrayList<News> news;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
news = new ArrayList<>();
mListView = findViewById(R.id.list);
NewsAdapter adapter = new NewsAdapter(this, news);
mListView.setAdapter(adapter);
RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest;
jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject rootResponses = response.getJSONObject("response");
JSONArray results = rootResponses.getJSONArray("results");
for(int i = 0; i<results.length(); i++){
JSONObject newsRoot = results.getJSONObject(i);
String title = newsRoot.getString("webTitle");
String category = newsRoot.getString("sectionName");
String date = newsRoot.getString("webPublicationDate");
News newsObj = new News(title, category, date);
news.add(newsObj);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", "Error" + error );
}
});
queue.add(jsonObjectRequest);
}
}
问题来源:Stack Overflow
当项目添加到NewsAdapter时,您需要通知NewsAdapter。否则它将不知道要重画。假设NewsAdapter是RecyclerViewAdapter,请newsAdapter.notifyDataSetChanged()在的末尾调用onResponse。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。