我今天已经为此寻找了一段时间。这看起来很容易,但我从来没有让它工作。我想用光标填充微调器。我一直在尝试使用SimpleCursorAdapter,因为很多网站都说我会,但我从来没有让它工作。告诉我它是多么容易:)
谢谢你的时间!
我的光标
Cursor cursor = db.query(DATABASE_TABLE_Clients, new String[] {"_id", "C_Name"}, null, null, null, null, "C_Name");
我的微调器
(Spinner) findViewById(R.id.spnClients);
我的代码
Cursor cursor_Names = SQLData.getClientNames();
startManagingCursor(cursor_Names);
String[] columns = new String[] { "C_Name" };
int[] to = new int[] { R.id.txt_Address };
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_dropdown_item, cursor_Names, columns, to);
Spinner spnClients = (Spinner) findViewById(R.id.spnClients);
spnClients.setAdapter(mAdapter);
答案 0 :(得分:8)
以下代码解决了我的问题。我错过了 .setDropDownViewResource 。之后我使用 simple_spinner_dropdown_item ,所以我不必自己做布局。
Cursor cursor_Names = SQLData.getClientNames();
startManagingCursor(cursor_Names);
String[] columns = new String[] { "C_Name" };
int[] to = new int[] { android.R.id.text1 };
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor_Names, columns, to);
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spnClients = (Spinner) findViewById(R.id.spnClients);
spnClients.setAdapter(mAdapter);
答案 1 :(得分:5)
我没有在您的代码中看到您的下拉列表视图。类似的东西:
mAdapter.setDropDownViewResource(R.layout.spinner_view_dropdown);
当然,您需要在res / layout目录中有一个spinner_view_dropdown.xml文件。
答案 2 :(得分:0)
我做到了
empresasSpinner = (Spinner) findViewById(R.id.empresasSpinner);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, empresasAll.toArray(new EntidadObject[0]));
empresasSpinner.setAdapter(spinnerArrayAdapter);
一个简单的DTO
public class EntidadObject {
private int id;
private String nombre;
//GETTES and SETTERS
}
DAO部分
public class EntidadDao {
//...
public List<EntidadObject> getEmpresas() {
Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM empresas", null);
List<EntidadObject> entidadObjects = new ArrayList<EntidadObject>();
cursor.moveToFirst();
do {
EntidadObject entidadObject = new EntidadObject();
entidadObject.setId(cursor.getInt(0));
entidadObject.setNombre(cursor.getString(1));
entidadObjects.add(entidadObject);
} while (cursor.moveToNext());
return entidadObjects;
}
}
那么我可以用
来捕捉选择项的IDEntidadObject eo = (EntidadObject)empresasSpinner.getSelectedItem();
eo.getId();