Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中从SimpleCursorAdpter检索Spinner上的正确数据_Android - Fatal编程技术网

如何在Android中从SimpleCursorAdpter检索Spinner上的正确数据

如何在Android中从SimpleCursorAdpter检索Spinner上的正确数据,android,Android,我使用了spinner上实现数据的SimpleCursorAdapter。进展顺利。为了获取数据,我还使用了以下代码: Cursor cursor = (Cursor) (spncomapnayname.getSelectedItem()); if (cursor != null) { companyselected = cc.getString(cc.getColumnIndex(db.COMPANY_NAME)); } 它工作得很好。但是它是用于从微调器获取数据的。但是现在

我使用了spinner上实现数据的SimpleCursorAdapter。进展顺利。为了获取数据,我还使用了以下代码:

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对此表示抱歉,但我不知道。