如何在Android中从SimpleCursorAdpter检索Spinner上的正确数据
我使用了spinner上实现数据的SimpleCursorAdapter。进展顺利。为了获取数据,我还使用了以下代码:如何在Android中从SimpleCursorAdpter检索Spinner上的正确数据,android,Android,我使用了spinner上实现数据的SimpleCursorAdapter。进展顺利。为了获取数据,我还使用了以下代码: Cursor cursor = (Cursor) (spncomapnayname.getSelectedItem()); if (cursor != null) { companyselected = cc.getString(cc.getColumnIndex(db.COMPANY_NAME)); } 它工作得很好。但是它是用于从微调器获取数据的。但是现在
Cursor cursor = (Cursor) (spncomapnayname.getSelectedItem());
if (cursor != null) {
companyselected = cc.getString(cc.getColumnIndex(db.COMPANY_NAME));
}
它工作得很好。但是它是用于从微调器获取数据的。但是现在我想在微调器上设置用户插入的特定数据,以更新我们使用的普通ArrayAdapter微调器:
spinnername.setSelection(adapter1.getPosition(abc));
所以我想知道如何在spinner上设置数据库中的数据
这是我的密码:
cursor = db.getProductName();
adapter1 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor, new String[] { DB_Database.PRODUCT_NAME }, new int[] { android.R.id.text1 });
adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spnproduct.setAdapter(adapter1);
purchaseproduct = purchasebundle.getString("clickedpurchaseproductname");
if(!purchaseproduct.equals("null")|| !purchaseproduct.equals("")) {
System.out.println("purchaseproduct" + purchaseproduct);
String mypurchaseproduct=purchaseproduct;
ArrayAdapter myAdap = (ArrayAdapter) spnproduct.getAdapter();
int spinnerPosition = myAdap.getPosition(mypurchaseproduct); // set the default according to value
spnproduct.setSelection(spinnerPosition);
}
这里我从bundle中获取数据。我想在微调器上检索数据。数据是从SimpleCursorAdapter中填充的,首先从游标中获取所选值并存储到
mString
变量中,然后使用下面的代码将所选值显示到微调器中
if (!mString.equals("null") || !mString.equals("")) {
String myString = mString; // the value you want the position for
ArrayAdapter<String> myAdap = (ArrayAdapter<String>) mSpn1.getAdapter(); // cast to an ArrayAdapter
int spinnerPosition = myAdap.getPosition(myString);
// set the default according to value
mSpn1.setSelection(spinnerPosition);
}
if(!mString.equals(“null”)| |!mString.equals(“”){
String myString=mString;//要为其指定位置的值
ArrayAdapter myAdap=(ArrayAdapter)mSpn1.getAdapter();//强制转换为ArrayAdapter
int spinnerPosition=myAdap.getPosition(myString);
//根据值设置默认值
mSpn1.setSelection(喷丝头位置);
}
您可以执行以下操作:
Cursor c = (Cursor)parent.getItemAtPosition(pos);
int id = c.getInt(c.getColumnIndexOrThrow("columm_name"));
或者得到一个字符串
String name=c.getString(c.getColumnIndexOrThrow("columm_name"));
我使用了该代码,但它向我显示了一个错误java.lang.ClassCastException:android.widget.SimpleCursorAdapter。我的微调器已使用SimpleCursorAdapter填充数据,并使用ArrayAdapter,这可能是因为抛出了错误。purchaseproduct=purchasebundle.getString(“clickedpurchaseproductname”);如果(!purchaseproduct.equals(“null”)| |!purchaseproduct.equals(“”){System.out.println(“purchaseproduct”+purchaseproduct”);字符串mypurchaseproduct=purchaseproduct;ArrayAdapter myAdap=(ArrayAdapter)spnproduct.getAdapter();int spinnerPosition=myAdap.getPosition(mypurchaseproduct);//根据spnproduct.setSelection(spinnerPosition)的值设置默认值;}@Kirti将您的完整代码发布到您的问题中,以便于理解。@Kirti对此表示抱歉,但我不知道。