2013-07-30 2 views
0

У меня проблема. У меня есть два действия (MainActivity, EditAccount). В MainActivity я скомпилировал список из базы данных. И в EditActivty, я обновил данные в базу и вернулся к MainActivity как только данные были изменены с этим:Уведомление об изменении данных от одного вида деятельности к другому

public class EditAccount extends Activity { 
    ...... 
    ...... 


    public void update_acc(View view){ 

    EditText accName=(EditText)findViewById(R.id.acc_name); 
    EditText comment=(EditText)findViewById(R.id.comments); 
    String acc_name=accName.getText().toString(); 
    String comments=comment.getText().toString(); 
    Intent intent=getIntent(); 
    int id = (int) intent.getExtras().getLong("data_id"); 
    String data_id= Integer.valueOf(id).toString(); 

    datasource.updateEvent(acc_name, comments, data_id); 
    datasource.close(); 

    Toast.makeText(getBaseContext(), "Account updated; Acc_name:"+acc_name+", Comment:"+comments, Toast.LENGTH_LONG).show(); 

    super.onBackPressed(); 
} 

Проблема в том, что, когда активность перенаправляет обратно MainActivity, данные не обновляется там в ListView. Итак, как я могу уведомить ListView о том, что данные были изменены? Пожалуйста, помогите. Спасибо заранее, Ожидание Вашего ответа ...

ответ

5

Проблема заключается в том, что вы заполняете свой ListView из базы данных внутри onCreate() возможно. Таким образом, решение состоит в том, чтобы заполнить ListView базой данных внутри onResume(), которая будет извлекать обновленные данные из базы данных.

Потому что, когда вы вернетесь обратно в MainActivity его onResume() будет называться, так просто поставить код для извлечения данных из базы данных внутри onResume() вместо onCreate() и обновить ListView.

+0

, можете ли вы рассказать мне, как я могу выполнить метод Oncreate() внутри onResume(). –

+0

Не нужно это делать, просто введите свой код для извлечения данных из базы данных и установки адаптера внутри 'onResume()' thats it –

+0

ok ... thanks btw .. :) –

-1

Добавить это youradapter.notifyDataSetChanged();

+0

его не будет работать. я должен уведомлять от одного действия к другому –

+0

этот код выполнит его только в том случае, если адаптер присутствует в этом самом действии –

+0

, иначе он покажет ошибку –

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