我有叫PrimaryData的數據庫,包括字段PrimaryDataId和PrimaryDataCode。我的問題是,當從數據庫中光標返回數據,微調沒有設置的的值的表光標。爲什麼不設置Spinner Android的值。我使用光標?
XML文件微調
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="14sp"
android:textColor= "#000000"
android:spinnerMode="dialog" />
PrimaryData類中把PrimaryDataId和PrimaryDataCode。這個類相當於一個數據庫表。
package com.example.proposaldashborad;
public class PrimeryData {
private int primeryDataId;
private String primeryDataCode;
@Override
public String toString() {
return this.primeryDataCode; // What to display in the Spinner list.
}
public int getPrimaryDataId() {
return primeryDataId;
}
public void setPrimaryDataId(int value) {
this.primeryDataId = value;
}
public int getPrimaryDataCode() {
return primeryDataId;
}
public void setPrimaryDataCode(String value) {
this.primeryDataCode = value;
}
}
這段代碼填寫微調
private void GetPrimaryDataForSpinner(String primaryDataName, Cursor cr) {
cr.moveToFirst();
//array_spinner = new String[cr.getCount()];
ArrayList<PrimeryData> pds = new ArrayList<PrimeryData>() ;
do {
//array_spinner[i] = cr.getString(cr.getColumnIndex("PrimeryDataCode"));
PrimeryData pd = new PrimeryData() ;
pd.setPrimaryDataId(cr.getInt(cr.getColumnIndex("PrimeryDataId")));
pd.setPrimaryDataCode(cr.getString(cr.getColumnIndex("PrimeryDataCode")));
pds.add(pd) ;
} while (cr.moveToNext());
cr.close();
if (primaryDataName == "Admin") {
adapterAdmin = new ArrayAdapter<PrimeryData>(this,R.layout.spinner, pds);
sAdmin = (Spinner) findViewById(R.id.spinnerAdmin);
sAdmin.setAdapter(adapterAdmin);
}
}
這是我的代碼當數據從數據庫返回。
private Spinner sAdmin;
private ArrayAdapter<PrimeryData> adapterAdmin;
db = new DBAdapter(getApplicationContext());
db.open();
cr = db.getViewMT26(entityID);
cr.moveToFirst();
if(cr.getCount()>0) {
PrimeryData pd = new PrimeryData();
pd.setPrimaryDataId(cr.getInt(cr.getColumnIndex("AdminId")));
pd.setPrimaryDataCode(cr.getString(cr.getColumnIndex("Admin")));
sAdmin.setSelection(adapterAdmin.getPosition(pd));
}
cr.close();
db.close();
我的主要問題是,爲什麼
adapterAdmin.getPosition(PD));
返回-1?
設定值當你intializing adapterAdmin? –
你在說什麼光標?在你的代碼中沒有光標... – pskink
mr/mrs Nag --->代碼不寫在這裏。但adapterAdmin填充 –