I have this class
private SQLiteDatabase dbCategoria;
DAOcategoria dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
    //stuff
    SQLiteDatabase dbCategoria;
    dbCategoria = openOrCreateDatabase("Lista_gastos.db", Context.MODE_PRIVATE, null);
    dao = new DAOcategoria(dbCategoria);
    //more stuff
    buscadados(select nome from categoria)
}
public ArrayList<String> buscaDados(String sql){
    Cursor dados = dao.RetornarDados(sql);
    ArrayList<String> res = new ArrayList<String>();
    dados.moveToFirst();
    do{
        // HERE is my problem i guess
        res.add(dados.getString(dados.getColumnIndex("nome")));
    }while (dados.moveToNext());
    dados.close();
    return res;
}
public Cursor RetornarDados(String sql) {
    Cursor dados = null;
    try
    {
        dados = db.rawQuery(sql, null);
        return dados;
    }
    catch(Exception ex)
    {
        return dados;
    }
}
I'm putting this String list on a spinner just to see the results, but what those string are returning are "android.support.v7.widget.App...' , however i wanna the values inside the table, i really can't see what i'm doing wrong
here's how i'm inserting new info
public void inserir(){
    EditText txtCat = (EditText)findViewById(R.id.txtCat);
    StringBuilder sql = new StringBuilder();
    if (!(txtCat.equals(""))) {
        sql.append("INSERT INTO categoria(nome) VALUES (");
        sql.append("'" + txtCat + "')");
        if (dao.ExecutarComando(sql.toString()) == true) {
            Toast.makeText(getBaseContext(), "Nova categoria criada com sucesso", Toast.LENGTH_SHORT).show();
            txtCat.setText("");
        } else {
            Toast.makeText(getBaseContext(), sql.toString(), Toast.LENGTH_LONG).show();
        }
    }
