2015-07-16 3 views
1

My Custome ArrayAdapter: Это делает то, что он должен делать, но показывает только последнюю запись конкретной таблицы. Мне нужно, чтобы показать все записиMy Custom ArrayAdapter показывает только последнюю запись

public class RecordAdapter extends ArrayAdapter<RecordData> { 
Context context; 
int layoutResourceId; 
RecordData data[] = null; 
private LayoutInflater inflater; 

public RecordAdapter(Context context, int layoutResourceId, RecordData[] data) { 
    super(context, layoutResourceId, data); 
    inflater = LayoutInflater.from(context); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.data = data; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    RecordHolder holder = null; 

    if (row == null) { 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent, false); 

     holder = new RecordHolder(); 
     holder.txtDate = (TextView) row.findViewById(R.id.txtDate); 
     row.setTag(holder); 
    } else { 
     holder = (RecordHolder) row.getTag(); 
    } 

    RecordData record_item = data[position]; 
    holder.txtDate.setText(record_item.recDate); 
    return row; 
} 

static class RecordHolder { 
    TextView txtDate; 
} 

}

Моего OnClickListener:

String dateToSee = mDisplayDate.getText().toString().trim(); 
      MyRecordsDatabaseHandler db = new MyRecordsDatabaseHandler(this); 
      // Querying all items 
      List<RecordToDoActivity> items = db.getRecord(dateToSee); 
      for (RecordToDoActivity ti : items) { 
       for (int i = 0; i <= items.size(); i++) { 
        display_record_dateEditText.setText(ti.getDate()); 
        display_record_timeEditText.setText(ti.getTime()); 
        display_record_glucoseEditText.setText(ti.getReading()); 
        display_record_glucoseTimeEditText.setText(ti.getReadtime()); 
        display_record_mealTimeEditText.setText(ti.getMealTime()); 
        display_record_medsEditText.setText(ti.getMeds()); 
        //display_record_insulin_unit_text.setText(ti.get()); 
        display_record_moodEditText.setText(ti.getMood()); 
        display_record_weatherEditText.setText(ti.getWeather()); 
        display_record_notesEditText.setText(ti.getNote() 
        ); 
       } 
      } 
      if (!display_record_dateEditText.getText().toString().trim().equals("")&& 
        !display_record_timeEditText.getText().toString().trim().equals("")&& 
        !display_record_glucoseEditText.getText().toString().trim().equals("")&& 
        !display_record_glucoseTimeEditText.getText().toString().trim().equals("")&& 
        !display_record_mealTimeEditText.getText().toString().trim().equals("")&& 
        !display_record_medsEditText.getText().toString().trim().equals("")&& 
        !display_record_moodEditText.getText().toString().trim().equals("")&& 
        !display_record_weatherEditText.getText().toString().trim().equals("")&& 
        !display_record_notesEditText.getText().toString().trim().equals("")) { 
       RecordData record_data[] = new RecordData[] { 
         new RecordData("Date: "+display_record_dateEditText.getText().toString().trim()+ "\n"+ 
           "Time: "+display_record_timeEditText.getText().toString().trim()+ "\n"+ 
           "Reading: "+display_record_glucoseEditText.getText().toString().trim()+ "\n"+ 
           "Reading Time: "+display_record_glucoseTimeEditText.getText().toString().trim()+ "\n"+ 
           "Meal: "+display_record_mealTimeEditText.getText().toString().trim()+ "\n"+ 
           "Medication: "+display_record_medsEditText.getText().toString().trim()+ "\n"+ 
           "Mood: "+display_record_moodEditText.getText().toString().trim()+ "\n"+ 
           "Weather: "+display_record_weatherEditText.getText().toString().trim()+ "\n"+ 
           "Notes: "+display_record_notesEditText.getText().toString().trim()), 

       }; 
       RecordAdapter adapter = new RecordAdapter(this, 
         R.layout.listview_record_row, record_data); 
       listView1 = (ListView) findViewById(R.id.listView1); 
       listView1.setAdapter(adapter); 
      }//end ITEM_ONE if statement  

Я попытался каждый элемент в отдельности и все они отображение данных. Но я не могу понять, как получить его, чтобы отобразить все записи в поле зрения один список

элемент управления ListView является нормальным ListView инкапсулируются в LinearLayout:

Помощь .... Im действительно застрял на этом , Спасибо

+1

ваша модель данных sqlite db, так почему же вы не используете 'SimpleCursorAdapter'? – pskink

+0

Спасибо за ваше предложение. Теперь я создал SimpleCursorAdapter, и он работает хорошо. –

ответ

0

Вы получаете данные от БД, поэтому вы должны использовать SimpleCursorAdapter или реализовать собственный CursorAdapter.

Этот answer, вероятно, решит вашу проблему.

+0

Спасибо Tin Megali за ваше предложение. Я создал SimpleCursorAdapter, и он работает хорошо. –

Смежные вопросы