我有一个活动,用户可以从spinners中填写。但如果用户没有填写任何这个微调,然后点击保存按钮,AlertDialog必须显示。CursorIndexOutOfBoundsException索引0请求,在Android中的大小为0
但是,它不是我所期望的。当我点击保存按钮,它显示了一个错误:“CursorIndexOutOfBoundsException指数0请求,大小为0”
我怎样才能解决这种类型的错误?
DatabaseHandler.java
public Cursor getReport_DistrictCode(String district)
{
SQLiteDatabase dbSqlite = this.getReadableDatabase();
Cursor c = dbSqlite.query(Constants.TABLE_DISTRICT, new String[]
{Constants.DISTRICT_ID, Constants.DISTRICT_CODE,Constants.DISTRICT_NAME,Constants.DISTRICT_DESCRIPTION},
Constants.DISTRICT_NAME+" = ?" , new String[]{district}, null, null, null);
if (c != null) {
c.moveToFirst();
}
dbSqlite.close();
return c;
}
MainActivity.java
spn_District.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View SelectedItem, int position, long id)
{
int rowid = (int)parentView.getItemIdAtPosition(position);
int districtId = rowid;
if(districtId == 0)
{
List<String> Province = new ArrayList<String>();
ArrayAdapter<String> adapter= new ArrayAdapter<String>(S_10th_IReportMain.this, android.R.layout.simple_spinner_item, Province);
spn_Province.setAdapter(adapter);
}
List<String> Province = databaseHandler.setItemOnProvinceSpinner(districtId);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(S_10th_IReportMain.this, R.layout.spinnerattributecell, Province) {
public View getView(int position, View convertView, ViewGroup parent)
{
View v = super.getView(position, convertView, parent);
Typeface externalFont=Typeface.createFromAsset(getAssets(), "Gothic_Regular.TTF");
((TextView) v).setTypeface(externalFont);
return v;
}
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v =super.getDropDownView(position, convertView, parent);
Typeface externalFont=Typeface.createFromAsset(getAssets(), "Gothic_Regular.TTF");
((TextView) v).setTypeface(externalFont);
return v;
}
};
adapter.setDropDownViewResource(R.layout.spinnerdropdownitem);
spn_Province.setAdapter(adapter);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
我的CursorAdapter的执行情况MainActivity.java
String District = spn_District.getSelectedItem().toString();
Cursor rDistrict = databaseHandler.getReport_DistrictCode(District);
String DistrictCode = rDistrict.getString(rDistrict.getColumnIndex(Constants.DISTRICT_CODE));
你可以给你的执行中的CursorAdapter? –
嗨@KapilVats,这是最后附上的代码 – androidBoomer
哪条线你得到这个错误 –