PDA

Ver la Versión Completa : [ SOLUCIONADO ] SearchView


Merche300
23/06/17, 08:44:40
Tengo un problema, que ya no se ni por donde mirar, el caso es que cada vez que abro este TabLayout o este fragment, no se donde estara el error,se me agrega una lupa a la toobar, ¿Como lo puedo arreglar?

public class Tab_Ïnicio extends Fragment {
private AppBarLayout appBar;
private TabLayout pestanas;
private ViewPager viewPager;

public Tab_Ïnicio() {
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmento_paginado, container, false);

if (savedInstanceState == null) {
insertarTabs(container);

// Setear adaptador al viewpager.
viewPager = (ViewPager) view.findViewById(R.id.pager);
poblarViewPager(viewPager);
pestanas.setupWithViewPager(viewPager);


pestanas.setTabGravity(TabLayout.GRAVITY_CENTER);
pestanas.setTabMode(TabLayout.MODE_FIXED);
//pestanas.setTabMode(TabLayout.MODE_SCROLLABLE);
}

return view;
}

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main, menu);
super.onDestroyView();
}


private void insertarTabs(ViewGroup container) {
View padre = (View) container.getParent();
appBar = (AppBarLayout) padre.findViewById(R.id.appbar);
pestanas = new TabLayout(getActivity());
pestanas.setTabTextColors(Color.parseColor("#FFFFFF"), Color.parseColor("#FFFFFF"));
appBar.addView(pestanas);
}

private void poblarViewPager(ViewPager viewPager) {
AdaptadorSecciones adapter = new AdaptadorSecciones(getFragmentManager());

adapter.addFragment(new FragGridCampos(), ("Todos"));
adapter.addFragment(new FragGridComentarios(), ("Comentarios"));
viewPager.setAdapter(adapter);
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public void onDestroyView() {
super.onDestroyView();
appBar.removeView(pestanas);
}

/**
* Un {@link FragmentStatePagerAdapter} que gestiona las secciones, fragmentos y
* títulos de las pestañas
*/
public class AdaptadorSecciones extends FragmentStatePagerAdapter {
private final List<Fragment> fragmentos = new ArrayList<>();
private final List<String> titulosFragmentos = new ArrayList<>();

public AdaptadorSecciones(FragmentManager fm) {
super(fm);
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public Fragment getItem(int position) {
return fragmentos.get(position);
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public int getCount() {
return fragmentos.size();
}

public void addFragment(Fragment fragment, String title) {
fragmentos.add(fragment);
titulosFragmentos.add(title);
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public CharSequence getPageTitle(int position) {
return titulosFragmentos.get(position);
}
}
}

O en este?

public class FragGridCampos extends Fragment implements SearchView.OnQueryTextListener{

//Creating a List of jornadas
private List<Estadisticas> listJornadas;

//Creating Views
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private Campos_Adapter adapter;


private List<Estadisticas> mCountryModel;


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate( R.layout.campos_list, null);

setHasOptionsMenu(true);

recyclerView = (RecyclerView) view.findViewById( R.id.recyclerView);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getActivity(), 1);
recyclerView.setLayoutManager(layoutManager);

TextView miTexto = (TextView)view.findViewById( R.id.mi_texto);
miTexto.setText("CAMPOS");
//miTexto.setTextColor(color.RED);
listJornadas = new ArrayList<Estadisticas>();

adapter = new Campos_Adapter(listJornadas, getActivity());
recyclerView.setAdapter(adapter);
recyclerView.addItemDecoration(new DecoracionLineaDivisoria(getActivity()));

getData();

/*ImageButton fabButton = (ImageButton) view.findViewById(R.id.fab);
fabButton.setOnClickListener(new View.OnClickListener() {
@override (http://www.htcmania.com/member.php?u=42589)
public void onClick(View v) {
//startActivity(new Intent(getActivity(), MainActivity2.class));
Toast.makeText(getActivity(),"Proximamente",Toast.LENGTH_SHORT).show();
}
});*/
return view;
}

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_buscar, menu);
super.onDestroyView();
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);


}

//This method will get data from the web api
private void getData(){
//Showing a progress dialog
final ProgressDialog loading = ProgressDialog.show(getActivity(),"Cargando datos", "Por favor espere...",false,false);

//Creating a json array request
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Config_Url.CAMPOS,
new Response.Listener<JSONArray>() {
override (http://www.htcmania.com/member.php?u=42589)[/I]
public void onResponse(JSONArray response) {
//Dismissing progress dialog
loading.dismiss();

//calling method to parse json array
parseData(response);
}
},
new Response.ErrorListener() {
override (http://www.htcmania.com/member.php?u=42589)[/I]
public void onErrorResponse(VolleyError error) {

}
});

//Creating request queue
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());

//Adding request to the queue
requestQueue.add(jsonArrayRequest);
}

//This method will parse json data
private void parseData(JSONArray array){

for(int i = 0; i<array.length(); i++) {
Estadisticas campo = new Estadisticas();
JSONObject json = null;
try {
json = array.getJSONObject(i);

campo.setNombre_campo(json.getString("nombre_campo"));
campo.setPoblacion(json.getString("poblacion"));
campo.setEquipo(json.getString("equipo"));
campo.setTelefono(json.getString("telefono"));
campo.setGeo(json.getString("geo"));
campo.setUrl(json.getString("url"));
campo.setEmail(json.getString("email"));

campo.setEscudo("http://juveniles.esy.es/Escudos/" + json.getString("escudo"));

} catch (JSONException e) {
e.printStackTrace();
}
listJornadas.add(campo);
adapter.notifyDataSetChanged();
}
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public boolean onQueryTextChange(String newText) {
final List<Estadisticas> filteredModelList = filter(listJornadas, newText);

adapter.setFilter(filteredModelList);
return true;
}

override (http://www.htcmania.com/member.php?u=42589)[/I]
public boolean onQueryTextSubmit(String query) {
return false;
}

private List<Estadisticas> filter(List<Estadisticas> models, String query) {
query = query.toLowerCase();
final List<Estadisticas> filteredModelList = new ArrayList<>();
for (Estadisticas model : models) {
final String poblacion = model.getPoblacion().toLowerCase();
final String equipo = model.getEquipo().toLowerCase();

if (poblacion.contains(query)) {
filteredModelList.add(model);
}
else if (equipo.contains(query)) {
filteredModelList.add(model);
}
}
return filteredModelList;

}
}

Merche300
23/06/17, 15:15:05
La solucion:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.menu_buscar, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);
}