从我的 API 接收数据并将其填充到 ArrayList
存储的对象中后,我正在填充我的 ArrayList
,但是当我记录 ArrayList
的大小时,它显示为空.
这是我的代码:
public class MainActivity extends AppCompatActivity {
private RequestQueue queue;
private static ArrayList<Team> teams;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = findViewById(R.id.homeRecyclerView);
this.teams = new ArrayList<>();
queue = Volley.newRequestQueue(this);
TeamNamesAdapter teamNamesAdapter = new TeamNamesAdapter(teams);
parseJSON();
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(teamNamesAdapter);
Log.i("Info",String.valueOf(teams.size()));
}
private void parseJSON(){
String url = "http://192.168.0.174:8080/team";
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest
(Request.Method.GET, url, null, response -> {
try {
for(int i=0;i<response.length();i++){
JSONObject teamDetails = response.getJSONObject(i);
Team team = new Team();
team.setId(Long.parseLong(teamDetails.getString("id")));
team.setTeamName(teamDetails.getString("teamName"));
team.setTotalMatches(Long.parseLong(teamDetails.getString("totalMatches")));
team.setTotalWins(Long.parseLong(teamDetails.getString("totalWins")));
this.teams.add(team);
Log.i("Info","Added team "+team.getTeamName()+" successfully");
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> Log.i("ERROR","Couldn't parse JSON"));
queue.add(jsonArrayRequest);
}}
我的 API 正在工作,因为我能够记录正在创建但未存储在列表中的每个团队对象。
答案 0 :(得分:0)
您可以删除 this.teams = new ArrayList<>();
并在开头添加初始值,因为它是静态的,private static ArrayList<Team> teams = new ArrayList<>();