2015-12-08 3 views
-3

Я пытаюсь создать приложение, в котором пользователь добавляет время и заметки и будет отображаться в списке. Когда я пытаюсь получить введенные данные от пользователя в onActivityResult, у меня возникла проблема. Вот мой код:Концерн, связанный с android

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == TIME_ENTRY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 

      String notes = data.getStringExtra("notes"); 
      String time = data.getStringExtra("time"); 

      TimeTrackerAdapter.TimeRecord(new TimeRecord(time, notes)); 
      TimeTrackerAdapter.notifyDataSetChanged(); 
     } 
    } 
} 

И код от того, где я пытаюсь получить данные:

public void onSave(View view) { 
    Intent intent = getIntent(); 

    final EditText timeView = (EditText) findViewById(R.id.time_view); 
    intent.putExtra("time", timeView.getText().toString()); 

    EditText notesView = (EditText) findViewById(R.id.notes_view); 
    intent.putExtra("notes", notesView.getText().toString()); 

    this.setResult(RESULT_OK, intent); 
    finish(); 
} 
+2

пост ваша ошибка – Jim

+0

i столкнулась с ошибкой в ​​этих двух строках TimeTrackerAdapter.TimeRecord (новый TimeRecord (время, примечания)); \t \t \t TimeTrackerAdapter.notifyDataSetChanged(); –

+0

сначала во TimeRecord и второй в TimeTrackerAdapter.notifyDataSetChanged() –

ответ

2

Вы должны использовать фактический экземпляр TimeTrackerAdapter в коде, который вы создали. Затем вы добавляете новый TimeRecord в массив, который вы сохранили в классе TimeTrackerAdapter, через свой экземпляр адаптера. Затем уведомить ListView для dataSetchange

timeTrackerAdapter.times.add(new TimeRecord(time, notes)); 
timeTrackerAdapter.notifyDataSetChanged(); 

Измените конструктор в TimeTrackerAdapter класса к этому.

public TimeTrackerAdapter(Context context, int textViewResourceId, ArrayList<TimeRecord> times) 
    { 
     super(context, textViewResourceId, times); 
     this.times=times 
    } 

и при создании timeTrackerAdapter, назовем его как этот

timeTrackerAdapter= new TimeTrackerAdapter(getActivity(),R.layout.time_list_item,[The ArrayList of TimeRecords that is set before populating the listView]); 

, если вы находитесь в классе активность, а затем изменить getActivity() к: это вместо

timeTrackerAdapter= new TimeTrackerAdapter(this,R.layout.time_list_item,[The ArrayList of TimeRecords that is set before populating the listView]); 
+0

не работает для меня все ошибки удалены, но не может отобразить anyhing –

+0

также, я думаю, вам нужно кое-что для вашего конструктора на адаптере.Я добавлю, что в моем ответе во втором –

+0

ознакомьтесь с этим открытым классом TimeRecord extends Activity { \t \t private String time; \t частные примечания к струнам; \t \t общественности (время String, String ноты) TimeRecord \t { \t \t \t this.time = время; \t \t \t это.ноты = примечания; \t} –

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