Buongiorno a tutti, sono un neofita con Android e java, ma sono anni che programmo in c c++ free pascal basic e altro, quindi non mi dovrebbero mancare le basi per capire dove sbaglio, e invece ho il seguente dilemma, come mai la riga in rosso è un errore? Qualcuno sa come aiutarmi, semplicemente voglio cambiare il contenuto di una spinner sulla scelta di un altra spinner. Chi sa dirmi dove sbaglio mi fa un grosso favore.
package francesco.Indirizzario;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.AdapterView.*;
import android.widget.Adapter;
import android.widget.ViewSwitcher;
import android.widget.ArrayAdapter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import francesco.Indirizzario.GenericDAO;
import android.database.sqlite.SQLiteException;
import android.util.Log;
import android.view.*;
import android.widget.Toast;
public class Indirizzario extends Activity {
private String array_via[];
private String array_nazioni[];
private String array_citta[];
private int i;
private static final String TAG = "GenericDAO";
private GenericDAO mioDatabaseHelper;
private SQLiteDatabase db;
private Cursor cursor;
private Spinner s1;
private Spinner s2;
private Spinner s3;
private int QuantiRecord;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mioDatabaseHelper = new GenericDAO(this);
/* Istanzio la connessione al db */
try{
db = mioDatabaseHelper.getWritableDatabase();
String[] columns = {"_id", "CodNazione","Descrizione"};
String orderBy = "_id ASC";
cursor = db.query("T_Nazioni", columns, null, null, null, null, orderBy);
/* Seleziono la nazione */
/* cursor.getColumnCount() mi restituisce il numero di record della query */
array_nazioni=new String[cursor.getColumnCount()-1];
i=0;
while (cursor.moveToNext())
{
if (cursor.isNull(2))
{
array_nazioni[i] = "VUOTO";
}else
{
array_nazioni[i] = cursor.getString(2);
}
i++;
}
cursor.close();
db.close();
Log.i(TAG, "Creating or opening the database.");
}catch(Exception se){
array_nazioni=new String[1];
array_nazioni[0]=se.getMessage();
Log.e(TAG, "Cound not create and/or open the database that will be used for reading and writing.", se);
}
s1 = (Spinner) findViewById(R.id.Cmb_Nazioni);
ArrayAdapter adapter1 = new ArrayAdapter(this,android.R.layout.simple_spinner_ item, array_nazioni);
s1.setAdapter(adapter1);
array_via=new String[5];
array_via[0]="Via Rossi";
array_via[1]="Via Pinco Pallo";
array_via[2]="Via Verdi";
array_via[3]="Piazza Vittoria";
array_via[4]="Piazza Verdi";
s3 = (Spinner) findViewById(R.id.Cmb_Via);
ArrayAdapter adapter3 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, array_via);
s3.setAdapter(adapter3);
s1.setOnItemSelectedListener(new OnItemSelectedListener()
{
private ArrayAdapter adapter2;
//@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,long id)
{
String valNazione = (String) s1.getSelectedItem();
Toast.makeText(parent.getContext(), valNazione, Toast.LENGTH_LONG).show();
/* Istanzio la connessione al db */
try{
db = mioDatabaseHelper.getWritableDatabase();
String[] selectionArgs = { };
String sql = "SELECT T_Citta.Descrizione FROM T_Nazioni, T_Citta WHERE T_Nazioni.Descrizione = '" + valNazione + "' AND T_Nazioni.CodNazione=T_Citta.CodNazione ORDER BY T_Citta.Descrizione ASC";
Toast.makeText(parent.getContext(),sql , Toast.LENGTH_LONG).show();
cursor = db.rawQuery(sql, selectionArgs);
/* Seleziono la nazione */
/* cursor.getColumnCount() mi restituisce il numero di record della query */
QuantiRecord=cursor.getCount();
array_citta = new String[QuantiRecord];
//array_citta = new String[50];
i=0;
Toast.makeText(parent.getContext(),"FIN QUA BENE ", Toast.LENGTH_LONG).show();
while (cursor.moveToNext())
{
if (cursor.isNull(0))
{
array_citta[i] = "VUOTO";
//adapter2.add("VUOTO");
}else
{
array_citta[i] = cursor.getString(0);
Toast.makeText(parent.getContext(),"ENTRA " + cursor.getColumnName(0) + " " + array_citta[i] , Toast.LENGTH_LONG).show();
//adapter2.add(cursor.getString(0).toString());
}
i++;
}
Toast.makeText(parent.getContext(),"FINISCE" , Toast.LENGTH_LONG).show();
cursor.close();
db.close();
Log.i(TAG, "Creating or opening the database.");
}catch(Exception se){
Toast.makeText(parent.getContext(),"ERRORE: " + se.getMessage() , Toast.LENGTH_LONG).show();
Log.e(TAG, "Cound not create and/or open the database that will be used for reading and writing.", se);
}
s2 = (Spinner) findViewById(R.id.Cmb_Citta);
adapter2 = new ArrayAdapter(this ,android.R.layout.simple_spinner_item, array_citta);
s2.setAdapter(adapter2);
}
//@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
}
);
mioDatabaseHelper.close();
}
}