Book object
public class Livros {
private int id;
private String nome;
public Livros() {}
public Livros (int id, String nome) {
this.id = id;
this.nome = nome;
}
public int getId () {
return id;
}
public int setId (int id) {
return id;
}
public int getNome () {
return nome;
}
public int setNome (String nome) {
return nome;
}
openHelper class
public List<Livros> buscarLivros() {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
List<Livros> listLivros = new ArrayList<>();
Cursor cursor = sqLiteDatabase.rawQuery(ConsultasSQL.getRegistrosTabLivros(), null);
if (cursor.moveToFirst()) {
do {
Livros livros = new Livros();
livros.setId(cursor.getInt(0));
livros.setNome(cursor.getString(1));
listLivros.add(livro);
} while (cursor.moveToNext());
}
sqLiteDatabase.close();
return listLivros;
}
Main
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataBase baseDeDados = new dataBase(this);
SQLiteDatabase connection = baseDeDados.getWritableDatabase();
Spinner spnLivros = (Spinner) findViewById(R.id.spinnerLivros);
ArrayList<Livros> arrayLivros = (ArrayList<Livros>) baseDeDados.buscarLivros();
ArrayAdapter<String> adpLivros = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adpLivros .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnLivros.setAdapter(adpLivros);
for (Livros livros : arrayLivros) {
adpLivros.add(livros.toString());
}
}
Spinner select method
public onItemSelected (AdapterView<?> parent, View view, int p, long id) {
Livros livros = (Livros) parent.getSelectedItem();
String buscaIdNome = "ID:" + livros.getId() + "Nome:" + livros.getNome();
Log.i("TESTE:", buscaIdNome);
}
Error:
java.lang.ClassCastException: java.lang.String cannot be cast to com.example.Livro
Before posting this question I checked numerous sites, including this one, but none of them found the solution to my problem.