我的应用程序性能有问题,我可以在视图中加载数据,但是,生成列表需要两分钟以上的时间。这是因为我的代码没有得到很好的优化吗?
下面是我的活动,我称之为
RecyclerView
在…上
public class ResultsActivity extends AppCompatActivity {
private RecyclerView rlist;
private LinearLayoutManager linearLayoutManager;
private DividerItemDecoration dividerItemDecoration;
private List<Riders> ridersList;
private RecyclerView.Adapter adapter;
public static Intent makeIntent(Context context) {
return new Intent(context, ResultsActivity.class);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results);
rlist = findViewById(R.id.recycler_view);
ridersList = new ArrayList<>();
adapter = new RidersAdapter(getApplicationContext(),ridersList);
linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
dividerItemDecoration = new DividerItemDecoration(rlist.getContext(),linearLayoutManager.getOrientation());
rlist.setHasFixedSize(true);
rlist.setLayoutManager(linearLayoutManager);
rlist.addItemDecoration(dividerItemDecoration);
rlist.setAdapter(adapter);
getData();
}
private void getData(){
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Loading results...");
progressDialog.show();
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++){
try {
JSONObject jsonObject = response.getJSONObject(i);
Riders riders = new Riders();
riders.setName(jsonObject.getString("Full_Name"));
riders.setClub(jsonObject.getString("Club"));
riders.setFinishPosition(jsonObject.getString("Finish_Position"));
ridersList.add(riders);
} catch (JSONException e){
e.printStackTrace();
progressDialog.dismiss();
}
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", error.toString());
progressDialog.dismiss();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonArrayRequest);
}
}
Json正在以这种格式加载
"[{"Full_Name":"Sam sam",
"Club":"Club",
"Finish_Position":"1"
},
{
"Full_Name":"Chris Chris",
"Club":"Club",
"Finish_Position":"2"
}"
都是一根大绳子,没有断线什么的?任何帮助都将不胜感激。
适配器为-
public class RidersAdapter extends RecyclerView.Adapter<RidersAdapter.MyViewHolder> {
private List<Riders> ridersList;
private Context context;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title, position, club;
public MyViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.main_title);
club = (TextView) view.findViewById(R.id.main_rating);
position = (TextView) view.findViewById(R.id.main_year);
}
}
public RidersAdapter(Context applicationContext, List<Riders> ridersList) {
this.ridersList = ridersList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.singleitem, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Riders riders = ridersList.get(position);
holder.title.setText(riders.getName());
holder.club.setText(riders.getClub());
holder.position.setText(riders.getFinishPosition());
}
@Override
public int getItemCount() {
return ridersList.size();
}