Я хочу показать некоторые данные в виде списка. не все данные в таблице
У меня ошибка «Не удалось прочитать строку 0, столбец 2 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него». Я пытаюсь составить список дел для Android.
Надеюсь, вы, ребята, можете мне помочь, и извините за вопрос, который был задан ранее, но я действительно не мог найти ответ в других сообщениях.
Ошибка в этой строке в классе: String Name_s = data.getString(2);
populateView();
ListViewContent. java
public class ListViewContent extends AppCompatActivity {
DatabaseHelper dbhp;
ArrayList<DataContent> listContent = new ArrayList<>();
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_layout);
listView = (ListView) findViewById(R.id.listView);
dbhp = new DatabaseHelper(this);
populateView();
CustomAdapter adapter = new CustomAdapter(this, R.layout.custom_listview_layout, listContent);
listView.setAdapter(adapter);
}
private void populateView() {
Cursor data = dbhp.getContent();
while (data.moveToNext()) {
int IDMushroom = data.getInt(0);
String Name = data.getString(1);
String Name_s = data.getString(2);
String Type = data.getString(3);
String Properties = data.getString(4);
byte[] MushroomImage = data.getBlob(5);
listContent.add(new DataContent(IDMushroom, Name, Name_s,Type, Properties, MushroomImage));
}
}
public class CustomAdapter extends BaseAdapter {
private Context context;
private int layout;
ArrayList<DataContent> content;
public CustomAdapter(Context context, int layout, ArrayList<DataContent> content) {
this.context = context;
this.layout = layout;
this.content = content;
}
@Override
public int getCount() {
return content.size();
}
@Override
public Object getItem(int position) {
return content.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private class ViewHolder {
TextView txtName, txtType;
ImageView imageMushroom;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder;
if (row == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(layout, null);
holder = new ViewHolder();
holder.txtName = (TextView) row.findViewById(R.id.name);
holder.txtType = (TextView) row.findViewById(R.id.type);
holder.imageMushroom = (ImageView) row.findViewById(R.id.imgV);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
final DataContent dc = content.get(position);
holder.txtName.setText(dc.GetName());
holder.txtType.setText(dc.GetType());
byte[] heroImage = dc.GetImage();
Bitmap bitmap = BitmapFactory.decodeByteArray(heroImage, 0, heroImage.length);
holder.imageMushroom.setImageBitmap(bitmap);
return row;
}
}
}```