Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //linea 164 y su complemento
- for (Plaza model : models) {
- final String text = model.getCodigoPlaza().toLowerCase();
- if (text.contains(query)) {
- filPlazaList.add(model);
- }
- }
- //linea 150 y su complemento
- final List<Plaza> filteredModelList = filter(plazas, newText);
- adapter.setFilter(filteredModelList);
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // Creación del fragmento principal
- if (savedInstanceState == null) {
- getSupportFragmentManager().beginTransaction()
- .add(R.id.container, new MainFragment(), "MainFragment")
- .commit();
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == Constantes.CODIGO_DETALLE || requestCode == 3) {
- if (resultCode == RESULT_OK || resultCode == 203) {
- MainFragment fragment = (MainFragment) getSupportFragmentManager().
- findFragmentByTag("MainFragment");
- fragment.cargarAdaptador();
- }
- }
- }
- }
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- public class MainFragment extends Fragment implements SearchView.OnQueryTextListener {
- /*
- Etiqueta de depuracion
- */
- private static final String TAG = MainFragment.class.getSimpleName();
- /*
- Adaptador del recycler view
- */
- private MetaAdapter adapter;
- /*
- Instancia global del recycler view
- */
- private RecyclerView lista;
- /*
- instancia global del administrador
- */
- private RecyclerView.LayoutManager lManager;
- /*
- Instancia global del FAB
- */
- private Gson gson = new Gson();
- /*
- Instancia global para el refresh
- */
- SwipeRefreshLayout mSwipeRefreshLayout;
- private List<Plaza> plazas;
- public MainFragment() {
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // Habilitar al fragmento para contribuir en la action bar
- setHasOptionsMenu(true);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.fragment_main, container, false);
- lista = (RecyclerView) v.findViewById(R.id.reciclador);
- lista.setHasFixedSize(true);
- // Usar un administrador para LinearLayout
- lManager = new LinearLayoutManager(getActivity());
- lista.setLayoutManager(lManager);
- mSwipeRefreshLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_refresh_layout_main);
- mSwipeRefreshLayout.setDistanceToTriggerSync(80);// in dips
- mSwipeRefreshLayout.setSize(SwipeRefreshLayout.DEFAULT);
- mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
- @Override
- public void onRefresh() {
- cargarAdaptador();
- mSwipeRefreshLayout.setRefreshing(false);
- }
- });
- // Cargar datos en el adaptador
- cargarAdaptador();
- return v;
- }
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- inflater.inflate(R.menu.menu_form, menu);
- final MenuItem item = menu.findItem(R.id.action_search);
- final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
- searchView.setQueryHint(getText(R.string.search));
- searchView.setOnQueryTextListener(this);
- //
- MenuItemCompat.setOnActionExpandListener(item,
- new MenuItemCompat.OnActionExpandListener() {
- @Override
- public boolean onMenuItemActionCollapse(MenuItem item){
- adapter.setFilter(plazas);
- return true;
- }
- @Override
- public boolean onMenuItemActionExpand(MenuItem item) {
- // Do something when expanded
- return true; // Return true to expand action view
- }
- });
- }
- @Override
- public boolean onQueryTextChange(String newText) {
- final List<Plaza> filteredModelList = filter(plazas, newText);
- adapter.setFilter(filteredModelList);
- return true;
- }
- @Override
- public boolean onQueryTextSubmit(String query) {
- return false;
- }
- private List<Plaza> filter(List<Plaza> models, String query) {
- query = query.toLowerCase();
- //
- final List<Plaza> filteredModelList = new ArrayList<>();
- for (Plaza model : models) {
- final String text = model.getCodigoPlaza().toLowerCase();
- if (text.contains(query)) {
- filteredModelList.add(model);
- }
- }
- return filteredModelList;
- }
- /**
- * Carga el adaptador con las metas obtenidas
- * en la respuesta
- */
- public void cargarAdaptador() {
- // Petición GET
- VolleySingleton.
- getInstance(getActivity()).
- addToRequestQueue(
- new JsonObjectRequest(
- Request.Method.GET,
- Constantes.GET,
- null,
- new Response.Listener<JSONObject>() {
- @Override
- public void onResponse(JSONObject response) {
- // Procesar la respuesta Json
- procesarRespuesta(response);
- }
- },
- new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- Log.d(TAG, "Error Volley: " + error.toString());
- }
- }
- )
- );
- }
- /**
- * Interpreta los resultados de la respuesta y así
- * realizar las operaciones correspondientes
- *
- * @param response Objeto Json con la respuesta
- */
- private void procesarRespuesta(JSONObject response) {
- try {
- // Obtener atributo "estado"
- String estado = response.getString("estado");
- switch (estado) {
- case "1": // EXITO
- // Obtener array "metas" Json
- JSONArray mensaje = response.getJSONArray("metas");
- // Parsear con Gson
- Plaza[] plazas = gson.fromJson(mensaje.toString(), Plaza[].class);
- // Inicializar adaptador
- adapter = new MetaAdapter(Arrays.asList(plazas), getActivity());
- // Setear adaptador a la lista
- lista.setAdapter(adapter);
- break;
- case "2": // FALLIDO
- String mensaje2 = response.getString("mensaje");
- Toast.makeText(
- getActivity(),
- mensaje2,
- Toast.LENGTH_LONG).show();
- break;
- }
- } catch (JSONException e) {
- Log.d(TAG, e.getMessage());
- }
- }
- }
- public class extends RecyclerView.Adapter<MetaAdapter.MetaViewHolder>
- implements ItemClickListener {
- /**
- * Lista de objetos {@link Meta} que representan la fuente de datos
- * de inflado
- */
- private List<Plaza> items;
- /*
- Contexto donde actua el recycler view
- */
- private Context context;
- public MetaAdapter(List<Plaza> items, Context context) {
- this.context = context;
- this.items = items;
- }
- @Override
- public int getItemCount() {
- return items.size();
- }
- @Override
- public MetaViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
- View v = LayoutInflater.from(viewGroup.getContext())
- .inflate(R.layout.item_list, viewGroup, false);
- return new MetaViewHolder(v, this);
- }
- @Override
- public void onBindViewHolder(MetaViewHolder viewHolder, int i) {
- switch(items.get(i).getEstado())
- {
- case "0":
- viewHolder.estado.setText("OCUPADO");
- break;
- case "1":
- viewHolder.estado.setText("VACANTE");
- break;
- case "2":
- viewHolder.estado.setText("RESERVADO");
- break;
- default:
- viewHolder.estado.setText("ERROR");
- }
- viewHolder.nivel.setText(items.get(i).getNivel());
- //viewHolder.estado.setText(items.get(i).getEstado());
- viewHolder.colegio.setText(items.get(i).getIe());
- viewHolder.especialidad.setText(items.get(i).getEspecialidad());
- viewHolder.codigo.setText(items.get(i).getCodigoPlaza());
- }
- /**
- * Sobrescritura del método de la interfaz {@link ItemClickListener}
- *
- * @param view item actual
- * @param position posición del item actual
- */
- @Override
- public void onItemClick(View view, int position) {
- DetailActivity.launch(
- (Activity) context, items.get(position).getPlazaID());
- }
- public static class MetaViewHolder extends RecyclerView.ViewHolder
- implements View.OnClickListener {
- // Campos respectivos de un item
- public TextView nivel;
- public TextView estado;
- public TextView colegio;
- public TextView especialidad;
- public TextView codigo;
- public ItemClickListener listener;
- public MetaViewHolder(View v, ItemClickListener listener) {
- super(v);
- nivel = (TextView) v.findViewById(R.id.nivel);
- estado = (TextView) v.findViewById(R.id.estado);
- colegio = (TextView) v.findViewById(R.id.colegio);
- especialidad = (TextView) v.findViewById(R.id.especialidad);
- codigo = (TextView) v.findViewById(R.id.codigo);
- this.listener = listener;
- v.setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- listener.onItemClick(v, getAdapterPosition());
- }
- }
- public void setFilter(List<Plaza> plazas){
- items = new ArrayList<>();
- items.addAll(plazas);
- notifyDataSetChanged();
- }
- }
- interface ItemClickListener {
- void onItemClick(View view, int position);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement