vendredi 22 avril 2016

Android - Populate spinner items with pre-populated SQLite data [duplicate]

This question already has an answer here:

I want to populate spinner items with my SQLite data. There are no errors in code. But application is stopped when it's launching in emulator. Please help me fix this issue.

This is my spinner class.

public class AndroidSpinner extends Activity {


private ArrayAdapter<String> listAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.district);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);

    DBAccess dbBackend = new DBAccess(AndroidSpinner.this);
    String[] spinnerLists = dbBackend.getAllSpinnerContent();

    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(AndroidSpinner.this,android.R.layout.simple_spinner_item, spinnerLists);
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(spinnerAdapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            return;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
}}

This is my DBAccess java file.

public class DBAccess {
private SQLiteOpenHelper openHelper;
private SQLiteDatabase database;
private static DBAccess instance;


public DBAccess(Context context) {
    this.openHelper = new HelloDatabase(context);
}


public static DBAccess getInstance(Context context) {
    if (instance == null) {
        instance = new DBAccess(context);
    }
    return instance;
}


public void open() {
    this.database = openHelper.getWritableDatabase();
}


 public void close() {
    if (database != null) {
        this.database.close();
    }
}

//SpinnerLoad
    public String[] getAllSpinnerContent(){

    String query = "Select * from districts";
    Cursor cursor = database.rawQuery(query, null);
    ArrayList<String> spinnerContent = new ArrayList<String>();
    if(cursor.moveToFirst()){
        do{
            String word = cursor.getString(cursor.getColumnIndexOrThrow("district_name"));
            spinnerContent.add(word);
        }while(cursor.moveToNext());
    }
    cursor.close();

    String[] allSpinner = new String[spinnerContent.size()];
    allSpinner = spinnerContent.toArray(allSpinner);

    return allSpinner;
}}

Aucun commentaire:

Enregistrer un commentaire