2013-07-30 113 views
0

我遇到問題。我有兩個活動(MainActivity,EditAccount)。 在MainActivity中,我從數據庫中編譯了一個listview。 而在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()'那就是它 –

+0

好的......謝謝btw .. :) –

-1

添加此youradapter.notifyDataSetChanged();

+0

它不會工作。我必須從一個活動通知另一個 –

+0

此代碼將只執行它,如果該適配器是在該活動中存在 –

+0

否則它會顯示一個錯誤 –

相關問題