Я занимаюсь разработкой приложения для Android, в котором у меня есть 3 счетчика, заполненных из базы данных под названием Отдел, Практика и Адрес
Я загружаю их условно, т. Е. Если это отдел А, загружающий Практику A, B и основанный нана практике адрес задан.
Затем я сохраняю эти позиции в другой таблице базы данных с помощью getSelectedItemPosition ().
Теперь, когда я пытаюсь их 3 переменными deptpos, practipos и addrpos.Но когда я использую setSelection после инициализации счетчиков, он показывает только правильную позицию для остальных отделов: (
Вот мой код
//Initializing the shared preferences variable
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
//Loading the database in writable format
db=mydbhelper.getWritableDatabase();
//For Medicines Table
try{
//For medicines
Cursor medspin = db.query("medicines", null,"_id="+prefs.getInt("pos",1),null,null,null,null);
medspin.moveToFirst();
//Filling the variables to set selemedspintion
deptpos=medspin.getInt(medspin.getColumnIndex("provider_department"));
practipos=medspin.getInt(medspin.getColumnIndex("provider_practice"));
addrpos=medspin.getInt(medspin.getColumnIndex("provider_address"));
hsname=medspin.getString(medspin.getColumnIndex("healthsystem"));
medspin.close();
Toast td=Toast.makeText(this,"Loaded dept is "+deptpos+"Loaded Provider is "+practipos+"Address is "+addrpos,Toast.LENGTH_LONG);
td.show();
}
catch(Exception e){
Log.e("Error","Error",e);
}
try{
//Cursor
Cursor depcur = db.rawQuery("SELECT _id,department,"+prefs.getString("hsname",null)+ " FROM dept_masterdata WHERE "+prefs.getString("hsname",null)+"=1",null);
depcur.moveToFirst();
startManagingCursor(depcur);
String[] from = new String[]{"department"};
int[] to = new int[] { android.R.id.text1 };
// Now creating an array adapter and set it to display using my row
//Adaptor for Department
SimpleCursorAdapter deptype =new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, depcur, from, to);
deptype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dep.setAdapter(deptype);
}
catch(Exception e){
Log.e("Error","Error",e);
}
//Now determine which department is selected
//Department
dep.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
deptid=dep.getSelectedItemId();
//Setting the practice spinner based on the department selected
Cursor pracur = db.rawQuery("SELECT _id,practice,dept_link,hs_id FROM practice_masterdata WHERE dept_link="+deptid+" AND hs_id="+(prefs.getInt("hsid",0)),null);
pracur.moveToFirst();
startManagingCursor(pracur);
String[] from1 = new String[]{"practice"};
int[] to1 = new int[]{android.R.id.text1};
SimpleCursorAdapter practype =new SimpleCursorAdapter(view.getContext(),android.R.layout.simple_spinner_item, pracur, from1, to1);
practype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
pra.setAdapter(practype);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
//Practice
pra.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
practid=pra.getSelectedItemId();
//Setting the address based on the practice selected
Cursor addcur =db.rawQuery("SELECT * FROM address_masterdata WHERE practice_link="+practid,null);
addcur.moveToFirst();
startManagingCursor(addcur);
String[] from2 = new String[]{"address"};
int[] to2 = new int[]{android.R.id.text1};
SimpleCursorAdapter addtype =new SimpleCursorAdapter(view.getContext(),android.R.layout.simple_spinner_item,addcur, from2, to2);
addtype.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
add.setAdapter(addtype);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
//Address
add.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,View view,int pos,long id){
addrid=add.getSelectedItemId();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
//Setting the spinners based on the above variables
dep.setSelection(deptpos);
pra.setSelection(practipos);
add.setSelection(addrpos,false);
}
Я подтвердил тостом, еслипеременные загружают правильные значения. Они есть, но просто не устанавливают их :(. Странно, что отдел показывает правильные настройки, в то время как практика и адрес не все :(. Пожалуйста, укажите, где я ошибаюсь
спасибо