//vista de busqueda, implementa la clase logica buscador,
//y se encarga de mostrar los resultados de buscador y de al
//seleccionarlos que se seleccionen en la main activity
package com.example.nav;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
public class Search extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
getActionBar().setDisplayHomeAsUpEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.search, menu);
getActionBar().setIcon(R.drawable.action_search);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView mSearchView;
mSearchView = (SearchView) searchItem.getActionView();
mSearchView
.setQueryHint(getResources().getString(R.string.search_hint));
mSearchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
return false;
}
@Override
public boolean onQueryTextChange(String text) {
Buscador search = new Buscador();
Object[] resultados = search.buscar(Properties.getCursos(),
text);
ListView listaAlumnos = (ListView) findViewById(R.id.alumnosSearch);
ListView listaCursos = (ListView) findViewById(R.id.cursosSearch);
Curso[] cursosRes = (Curso[]) resultados[0];
Alumno[] alumnosRes = (Alumno[]) resultados[1];
final int[] posCursosRes = (int[]) resultados[2];
final int[][] posAlumnosRes = (int[][]) resultados[3];
String[] listaAlumnosString = new String[alumnosRes.length];
String[] listaCursosString = new String[cursosRes.length];
for (int i = 0; i < alumnosRes.length; i++) {
listaAlumnosString[i] = getResources().getString(
R.string.alumno_resultado)
+ alumnosRes[i].getNombre();
}
for (int i = 0; i < cursosRes.length; i++) {
listaCursosString[i] = getResources().getString(
R.string.curso_resultado)
+ cursosRes[i].getCurso();
}
ArrayAdapter<String> adaptadorAlumnos = new ArrayAdapter<String>(
Search.this, android.R.layout.simple_list_item_1,
listaAlumnosString);
ArrayAdapter<String> adaptadorCursos = new ArrayAdapter<String>(
Search.this, android.R.layout.simple_list_item_1,
listaCursosString);
listaAlumnos.setAdapter(adaptadorAlumnos);
listaAlumnos
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0,
View arg1, int position, long arg3) {
int posicionCurso = posAlumnosRes[position][0];
int posicionAlumno = posAlumnosRes[position][1];
Properties.setLastCourse(Properties.getCursos()[posicionCurso]);
Properties
.setLastAlumn(Properties
.getLastCourse().getAlumnos()[posicionAlumno]);
Properties.setFirsTime(true);
Properties.setSeleccion(2);
finish();
}
});
listaCursos.setAdapter(adaptadorCursos);
listaCursos
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0,
View arg1, int position, long arg3) {
int posicionCurso = posCursosRes[position];
Properties.setLastCourse(Properties.getCursos()[posicionCurso]);
Properties.setFirsTime(true);
Properties.setSeleccion(1);
finish();
}
});
return false;
}
});
searchItem.expandActionView();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}