I come with a small problem in my application, I use android studio for development, what happens is that I have 3 activities:
-
In SELECT I choose an option by means of a
spinner
and bycheckbox
, I generate a query that I keep it in a variable type String. -
In the List activity, a
Listview
is generated
-
In Knowledgebase the entire database of the application is saved
The problem that I have (and I know it is very simple but I still do not know how to do it and has given me a problem for a long time) is that when I generate my query in EleccionSe, how can I send it to the List activity, necessarily as I'm doing it, the phrase has to reach List and then it sends the query to the database.
How could I send that query? I thank you infinitely who can help me: D
Here are the parts of my activities:
Activity Choice
public class EleccionSe extends AppCompatActivity {
String[] TipoTierra= {"Arcilloso","Arenoso","Franco","Franco arenoso","Franco arcilloso","Franco limoso","Frnaco arcilloso arenoso"};
String [] TipoClima= {"Frio","Moderadamente frio","Templado","Moderadamente calido","Calido","Caliente"};
Spinner SpinnerTipotierra;
Spinner SpinnerClima;
TextView Temperatura;
String Ciudad;
TextView Fecha ;
String Celsius,Mes;
double tempCelsius;
String SeleccionClima;
String SeleccionTierra;
CheckBox Cundinamarca;
CheckBox Boyaca;
CheckBox Nariño;
Button boton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_eleccion_se);
Cundinamarca = (CheckBox) findViewById(R.id.Cundinamarca);
Boyaca = (CheckBox) findViewById(R.id.Boyaca);
Nariño = (CheckBox) findViewById(R.id.Nariño);
Temperatura = (TextView) findViewById(R.id.Temp);
boton = (Button)findViewById(R.id.BotonSE);
SpinnerTipotierra=(Spinner)findViewById(R.id.SpinnerTierra);
SpinnerClima=(Spinner)findViewById(R.id.SpinnerClima);
CargaSpinner();
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
EleccionSe.Localizacion Local = new EleccionSe.Localizacion();
Local.setUbicacion(this);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, (LocationListener) Local);
TextView Temperatura = (TextView) findViewById(R.id.Temp);
//final String temp = (String) Temperatura.getText();
//final Double tempe = Double.parseDouble(temp);
// Fecha Mes
final String[] monthname = {(String) android.text.format.DateFormat.format("MMMM", new Date())};
Fecha = (TextView) findViewById(R.id.Fecha);
Fecha.setText(monthname[0]);
Mes = Fecha.getText().toString();
//final int Mesfinal = Integer.parseInt(Mes);
//cierre mes
SpinnerClima.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(getBaseContext(), parent.getItemAtPosition(position)+ "es seleccionado", Toast.LENGTH_LONG).show();
SeleccionClima= parent.getItemAtPosition(position).toString();
//Toast.makeText(getBaseContext(), SeleccionClima+ " clima es seleccionado", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
SpinnerTipotierra.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Toast.makeText(getBaseContext(), parent.getItemAtPosition(position)+ "es seleccionado", Toast.LENGTH_LONG).show();
SeleccionTierra = parent.getItemAtPosition(position).toString();
//Toast.makeText(getBaseContext(), SeleccionTierra+ " tierra es seleccionado", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
RealizarConsulta();
}
public void CargaSpinner(){
...
}
public void setLocation(Location loc) {
...
}
public class Localizacion implements LocationListener {
...
}
private class OpenWeatherMapTask extends AsyncTask<Void, Void, String> {
...
}
public void RealizarConsulta(){
boton = (Button)findViewById(R.id.BotonSE);
boton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Mes.equals("mayo")) {
tempCelsius = Double.parseDouble(Celsius);
Lista consulta = new Lista("Select * from Hortaliza_Verdura");
Intent cambia = new Intent(EleccionSe.this, Lista.class);
startActivity(cambia);
}
}
});
}
}
Activity List
public class Lista extends AppCompatActivity {
ListView lv;
ArrayList<String> Lista1;
ArrayAdapter adaptador;
@Override
protected void onCreate(Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista);
lv = (ListView)findViewById(R.id.lista);
poblar();
}
public void poblar(){
lv = (ListView)findViewById(R.id.lista);
Lista1 = bd.llenar_lv("aqui va la consulta a la BD");
adaptador = new ArrayAdapter(this, android.R.layout.simple_list_item_1,Lista1);
lv.setAdapter(adaptador);
}
}
Activity Knowledgebase
public class BaseDeConocimiento extends SQLiteOpenHelper {
ListView lv;
ArrayList<String> Lista1;
ArrayAdapter adaptador;
public BaseDeConocimiento(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, "AppAgroKB", factory, 1);
}
public void onCreate(SQLiteDatabase db) {
Log.i(this.getClass().toString(), "Creando base de datos");
db.execSQL( "CREATE TABLE Hortaliza_Verdura(Nombre_Hortaliza TEXT,Departamento TEXT,Temperatura Integer,Clima_Optimo TEXT,Tipo_Suelo TEXT,Mes_Optimo TEXT,Conclusion TEXT)");
Log.i(this.getClass().toString(), "Tabla Hortaliza_Verdura creada ");
/*
* Insertamos datos iniciales
*/
Log.i(this.getClass().toString(), "Datos base de conocimientos");
db.execSQL("INSERT INTO Hortaliza_Verdura(Nombre_Hortaliza, Departamento, Temperatura, Clima_Optimo, Tipo_Suelo, Mes_Optimo,Conclusion) VALUES('Cebolla Cabezona','Boyaca','Entre 18 y 22','Templado','Arcilloso','febrero','La mejor opcion para esta epoca es sembrar cebolla cabezona')");
db.execSQL("INSERT INTO Hortaliza_Verdura(Nombre_Hortaliza, Departamento, Temperatura, Clima_Optimo, Tipo_Suelo, Mes_Optimo,Conclusion) VALUES('Cebolla Cabezona','Boyaca','Entre 18 y 22','Templado','Arcilloso','marzo','La mejor opcion para esta epoca es sembrar cebolla cabezona')");
Log.i(this.getClass().toString(), "Base de conocimientos creada");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS Hortaliza_Verdura");
onCreate(db);
}
public ArrayList llenar_lv (String query) {
ArrayList<String> Lista1 = new ArrayList<>();
SQLiteDatabase database = this.getWritableDatabase();
Cursor registro = database.rawQuery(query,null);
if(registro.moveToFirst()){
do{
Lista1.add(registro.getString(0));
/*Lista1.add(registro.getString(1));
Lista1.add(registro.getString(2));
Lista1.add(registro.getString(3));
Lista1.add(registro.getString(4));
Lista1.add(registro.getString(5));
Lista1.add(registro.getString(6));*/
}while (registro.moveToNext());
}
return Lista1;
}
}