Я получаю проблемы при обработке значения ArrayList из значения списка базы данных ListView из SQLite с помощью CustomAdapter
В принципе у меня есть две ошибок:
- Выше показан один
- One от LogCat (
String resource ID #0x1
)
CustomAdapter класс:
public class IncomeListAdaptor extends ArrayAdapter<Income>{
Context context;
int layoutResourceId;
List<Income> incomeList;
public IncomeListAdaptor(Context context, int layoutResourceId, ArrayList<Income> objects) {
super(context, layoutResourceId, objects);
this.context = context;
this.layoutResourceId = layoutResourceId;
this.incomeList = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.txtId = (TextView)row.findViewById(R.id.idItem);
holder.txtDate = (TextView) row.findViewById(R.id.dateItem);
holder.txtAmount = (TextView) row.findViewById(R.id.amountItem);
row.setTag(holder);
}
else
{
holder = (ViewHolder)row.getTag();
}
Income income = incomeList.get(position);
holder.txtId.setText(income.getIncomeid());
holder.txtAmount.setText(income.getAmount());
holder.txtSource.setText(income.getSource());
return row;
}
static class ViewHolder {
TextView txtId;
TextView txtAmount;
TextView txtSource;
}}
Список баз данных Функция
/**
* getting all income
* */
public List<Income> getAllIncomes() {
List<Income> incomes = new ArrayList<Income>();
String selectQuery = "SELECT * FROM " + TABLE_INCOME;
Log.e(LOG, selectQuery);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
Income in = new Income();
in.setIncomeid(c.getInt(c.getColumnIndex(KEY_INCOME_ID)));
in.setAmount(c.getInt(c.getColumnIndex(KEY_AMOUNT)));
in.setSource(c.getString(c.getColumnIndex(KEY_SOURCE)));
in.setCdate(c.getString(c.getColumnIndex(KEY_CDATE)));
in.setPayementmode(c.getString(c.getColumnIndex(KEY_PAYEMENT_MODE)));
// adding to income list
incomes.add(in);
} while (c.moveToNext());
}
return incomes;
}
Fragment1.java класс
mIncomeList = (ListView)view.findViewById(R.id.incomelist);
List<Income> values = db.getAllIncomes();
IncomeListAdaptor adapter = new IncomeListAdaptor(getActivity(), R.layout.income_list_item_genrator, values);
mIncomeList.setAdapter(adapter);
LogCat Ошибка:
12-03 01:03:23.141: E/AndroidRuntime(17560): FATAL EXCEPTION: main
12-03 01:03:23.141: E/AndroidRuntime(17560): android.content.res.Resources$NotFoundException: String resource ID #0x1
12-03 01:03:23.141: E/AndroidRuntime(17560): at android.content.res.Resources.getText(Resources.java:201)
12-03 01:03:23.141: E/AndroidRuntime(17560): at android.widget.TextView.setText(TextView.java:2961)
12-03 01:03:23.141: E/AndroidRuntime(17560): at parth.any.ttb.adapter.IncomeListAdaptor.getView(IncomeListAdaptor.java:53)
Ну, вы, конструктор, ожидаете 'ArrayList', но вы даете ему« Список », вместо этого вы пытаетесь дать ему ArrayList? – tyczj
Да Но, делая это, я все еще получаю вторую ошибку logCat, как я объяснил .. !! – arraystack
где линия 53 в вашем адаптере? – tyczj