Recyclerview中的排序数组(Java、Android) package com.example.sander.app; 导入android.app.Fragment; 导入android.app.FragmentTransaction; 导入an
Recyclerview中的排序数组(Java、Android)Recyclerview中的排序数组(Java、Android) package com.example.sander.app; 导入android.app.Fragment; 导入android.app.FragmentTransaction; 导入an,java,android,arrays,sorting,Java,Android,Arrays,Sorting,Recyclerview中的排序数组(Java、Android) package com.example.sander.app; 导入android.app.Fragment; 导入android.app.FragmentTransaction; 导入android.content.Intent; 导入android.location.location; 导入android.os.Bundle; 导入android.support.v7.widget.CardView; 导入android.su
package com.example.sander.app;
导入android.app.Fragment;
导入android.app.FragmentTransaction;
导入android.content.Intent;
导入android.location.location;
导入android.os.Bundle;
导入android.support.v7.widget.CardView;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.FrameLayout;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
/**
*由Sander于2017年6月4日创建。
*/
公共类RecycleFrame扩展片段{
ArrayList name=新的ArrayList();
ArrayList cPoints=新的ArrayList();
ArrayList代码=新的ArrayList();
ArrayList纬度=新ArrayList();
ArrayList经度=新的ArrayList();
全球定位系统;
ArrayList dLatitude=新的ArrayList();
ArrayList Dlongitence=新的ArrayList();
ArrayList距离=新的ArrayList();
ArrayList dataList=新的ArrayList();
公共回收名称(){
//必需的空公共构造函数
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建选项菜单(菜单菜单,菜单充气机){
充气机。充气(右菜单。碎片视图,菜单);
super.onCreateOptions菜单(菜单,充气机);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
整数id=item.getItemId();
if(id==R.id.action_A_Z){
//将车库从A到Z排序
集合。排序(名称);
//刷新片段
FragmentTransaction=getFragmentManager().beginTransaction();
transaction.detach(this.attach)(this.commit();
返回true;
}
else if(id==R.id.action_Z_A){
//将车库从Z排序到A
收藏。背面(名称);
//刷新片段
FragmentTransaction=getFragmentManager().beginTransaction();
transaction.detach(this.attach)(this.commit();
返回true;
}
else if(id==R.id.short_distance){
集合。排序(距离);
FragmentTransaction=getFragmentManager().beginTransaction();
transaction.detach(this.attach)(this.commit();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
设置选项菜单(真);
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u回收,容器,错误);
最终RecyclerView VRecyclerView=(RecyclerView)视图.findViewById(R.id.rv\u recycler\u视图);
RequestQueue rq=Volley.newRequestQueue(getActivity().getApplicationContext());
字符串url=”http://test.dontstealmywag.ga/api/parkgarage_all.php";
StringRequest StringRequest=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
//对回应做点什么
试一试{
JSONObject o=新的JSONObject(响应);
JSONArray值=o.getJSONArray(“”);
if(names.size()==0){
对于(int i=0;i package com.example.sander.app;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.location.Location;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.Toast;
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.StringRequest;
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.Collections;
import java.util.List;
/**
* Created by Sander on 6-4-2017.
*/
public class RecycleFrame extends Fragment {
ArrayList<String> names = new ArrayList<>();
ArrayList<String> cPoints = new ArrayList<>();
ArrayList<String> code = new ArrayList<>();
ArrayList<String> latitude = new ArrayList<>();
ArrayList<String> longitude = new ArrayList<>();
GPSTracker gps;
ArrayList<Double> dLatitude = new ArrayList<>();
ArrayList<Double> dLongitude = new ArrayList<>();
ArrayList<Float> distance = new ArrayList<>();
ArrayList<Data> dataList = new ArrayList<>();
public RecycleFrame() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_view, menu);
super.onCreateOptionsMenu(menu,inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Integer id = item.getItemId();
if(id == R.id.action_A_Z){
//Sorts the garages from A to Z
Collections.sort(names);
//Refreshes the fragment
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.detach(this).attach(this).commit();
return true;
}
else if(id == R.id.action_Z_A){
//Sorts the garages from Z to A
Collections.reverse(names);
//Refreshes the fragment
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.detach(this).attach(this).commit();
return true;
}
else if (id == R.id.short_distance){
Collections.sort(distance);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.detach(this).attach(this).commit();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_recycle, container, false);
final RecyclerView VRecyclerView = (RecyclerView) view.findViewById(R.id.rv_recycler_view);
RequestQueue rq = Volley.newRequestQueue(getActivity().getApplicationContext());
String url= "http://test.dontstealmywag.ga/api/parkgarage_all.php";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Do something with the response
try{
JSONObject o = new JSONObject(response);
JSONArray values=o.getJSONArray("");
if(names.size() == 0) {
for (int i = 0; i < values.length(); i++) {
JSONObject jsonObject = values.getJSONObject(i);
dataList.add(new Data(jsonObject.getString("parkgarage_name"), jsonObject.getString("charging_capcatity"), jsonObject.getDouble("langitude"),
jsonObject.getDouble("longitude"), jsonObject.getString("parkgarage_code"), distance.get(i)));
//names.add(jsonObject.getString("parkgarage_name"));
//cPoints.add(jsonObject.getString("charging_capacity"));
//code.add(jsonObject.getString("parkgarage_code"));
//latitude.add(jsonObject.getString("langitude"));
//longitude.add(jsonObject.getString("longitude"));
dLatitude.add(jsonObject.getDouble("langitude"));
dLongitude.add(jsonObject.getDouble("longitude"));
}
}
} catch (JSONException ex){}
gps = new GPSTracker(getActivity());
//check if gps is on
if(!gps.canGetLocation()){
gps.showSettingsAlert();
}
Location myLocation = new Location("");
myLocation.setLatitude(gps.getLatitude());
myLocation.setLongitude(gps.getLongitude());
for(int z = 0; z < latitude.size(); z++){
Location parkingGarage = new Location("");
parkingGarage.setLatitude(dLatitude.get(z));
parkingGarage.setLongitude(dLongitude.get(z));
distance.add(myLocation.distanceTo(parkingGarage)/1000);
}
VRecyclerView.setHasFixedSize(true);
//RecycleAdapter adapter = new RecycleAdapter(names, cPoints, code, latitude, longitude, distance);
RecycleAdapter adapter = new RecycleAdapter(dataList);
VRecyclerView.setAdapter(adapter);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
VRecyclerView.setLayoutManager(llm);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle error
}
});
rq.add(stringRequest);
return view;
}
}
package com.example.sander.app;
import android.app.Fragment;
import android.media.Image;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.lang.reflect.Array;
import java.util.ArrayList;
/**
* Created by Sander on 6-4-2017.
*/
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.MyViewHolder> {
ArrayList<Data> ArrayListData;
public static class MyViewHolder extends RecyclerView.ViewHolder{
public CardView mCardView;
public TextView TextViewNames;
public MyViewHolder(View v){
super(v);
mCardView = (CardView) v.findViewById(R.id.card_view);
TextViewNames = (TextView) v.findViewById(R.id.text_view_names);
}
}
public RecycleAdapter(ArrayList<Data> names){
ArrayListData = names;
//ArrayCharging= cPoints;
//ArrayCode = code;
//ArrayLatitude = latitude;
//ArrayLongitude = longitude;
//ArrayDistance = distance;
}
@Override
public RecycleAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_card_view, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position){
holder.TextViewNames.setText(String.valueOf(ArrayListData.get(position)));
//holder.TextViewNames.setText("Naam: " + ArrayNames.get(position));
//holder.TextViewCharging.setText("Oplaadpunten: " + ArrayCharging.get(position));
//holder.TextViewCode.setText("Code: " + ArrayCode.get(position));
//holder.TextViewLatitude.setText("Positie: (" + ArrayLatitude.get(position) + ", " + ArrayLongitude.get(position)+ ")");
//holder.TextViewDistance.setText(String.valueOf(ArrayDistance.get(position)));
//holder.mImageView.setImageResource(R.drawable.ic_local_parking_black_24dp);
}
@Override
public int getItemCount() { return ArrayListData.size(); }
}