Android 自定义微调器值集
Android custom spinner value set
我有一个包含名称 value.Using 的自定义微调器,我可以显示一个名称,在后面我可以获得该名称的 ID。它工作完美。看起来像这样 -
// Get the readable version
SQLiteDatabase db = myDbHelper.getReadableDatabase();
Cursor cursor = db.query("address", new String[] { "name", "code"}, null, null, null, null, null);
int noOfRow = cursor.getCount();
Log.v("TAG", "no of data: " + noOfRow);
MyData[] items = new MyData[noOfRow];
int i = 0;
if (cursor.moveToFirst())
{
do
{
// Log.w("TAG", "Name: " + cursor.getString(0));
// Log.w("TAG", "Code: " + cursor.getString(1));
items[i] = new MyData( cursor.getString(0),cursor.getString(1));
i++;
}while (cursor.moveToNext());
StreetSpinnerAdapter = new ArrayAdapter<MyData>( this,android.R.layout.simple_spinner_item,items );
StreetSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerStreetName.setAdapter(StreetSpinnerAdapter);
populateSpinnerData(items);
}
cursor.close();
db.close();
class MyData
{
public MyData( String spinnerText, String value )
{
this.spinnerText = spinnerText;
this.value = value;
}
public String getSpinnerText() {
return spinnerText;
}
public String getValue() {
return value;
}
public String toString() {
return spinnerText;
}
String spinnerText;
String value;
}
我正在使用代码 select 微调器的值在编程上是这样的 SpinnerStreetName.setSelection(((ArrayAdapter)SpinnerStreetName.getAdapter()).getPosition(SpinnerStreetName.getSelectedItem()));
但是没用...
首先,您必须通过以下方式存储微调项的值:
String str = spinner.getSelectedItem().toString();
然后在 for 循环中执行此操作:
for(int i = 0;i<items.length();i++){
{
if(str.equals(items[i].getSpinnerText()){
//Do with your id by items[i].getValue()
}
}
希望对你有帮助you.Any进一步的问题问我..
谢谢。
我有一个包含名称 value.Using 的自定义微调器,我可以显示一个名称,在后面我可以获得该名称的 ID。它工作完美。看起来像这样 -
// Get the readable version
SQLiteDatabase db = myDbHelper.getReadableDatabase();
Cursor cursor = db.query("address", new String[] { "name", "code"}, null, null, null, null, null);
int noOfRow = cursor.getCount();
Log.v("TAG", "no of data: " + noOfRow);
MyData[] items = new MyData[noOfRow];
int i = 0;
if (cursor.moveToFirst())
{
do
{
// Log.w("TAG", "Name: " + cursor.getString(0));
// Log.w("TAG", "Code: " + cursor.getString(1));
items[i] = new MyData( cursor.getString(0),cursor.getString(1));
i++;
}while (cursor.moveToNext());
StreetSpinnerAdapter = new ArrayAdapter<MyData>( this,android.R.layout.simple_spinner_item,items );
StreetSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerStreetName.setAdapter(StreetSpinnerAdapter);
populateSpinnerData(items);
}
cursor.close();
db.close();
class MyData
{
public MyData( String spinnerText, String value )
{
this.spinnerText = spinnerText;
this.value = value;
}
public String getSpinnerText() {
return spinnerText;
}
public String getValue() {
return value;
}
public String toString() {
return spinnerText;
}
String spinnerText;
String value;
}
我正在使用代码 select 微调器的值在编程上是这样的 SpinnerStreetName.setSelection(((ArrayAdapter)SpinnerStreetName.getAdapter()).getPosition(SpinnerStreetName.getSelectedItem()));
但是没用...
首先,您必须通过以下方式存储微调项的值:
String str = spinner.getSelectedItem().toString();
然后在 for 循环中执行此操作:
for(int i = 0;i<items.length();i++){
{
if(str.equals(items[i].getSpinnerText()){
//Do with your id by items[i].getValue()
}
}
希望对你有帮助you.Any进一步的问题问我.. 谢谢。