0

该应用程序的主要活动是显示一个列表。用户单击列表中的某些内容会打开一个编辑屏幕。完成后,编辑屏幕关闭 - 我希望使用编辑屏幕上发生的任何内容更新原始列表。我将数据保存到一个文件中——我可以再次读取它来更新列表。但是我不知道在哪里插入重新读取的代码。

在 ListActivity - 当列表再次获得焦点时调用什么方法?

这是我的主要列表活动代码:

创建视图:

@Override
       public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Inflate our UI from its XML layout description.
    setContentView(R.layout.my_activity);

   list=new Data_List(this);  // my data reading class
   list.read_data();           // reads from a file

  load_dynamic_list();

}

加载数据:

private void load_dynamic_list(){
             ladapter=new         
list_adapter(this,android.R.layout.simple_list_item_1,list);  // the type is actually  ignored                                                                                  // getview function in list_adapter handles everything
          setListAdapter(ladapter);
         this.getListView().invalidate();

}

选择了一些东西:

protected void onListItemClick (ListView l, View v, int position, long id){
  int a;
   intent = new Intent(this,Editing.class);

        intent.putExtra("New_entry",0);
        intent.putExtra("Entry",position);


        //start the second Activity
        this.startActivity(intent);


 }

在编辑功能中,我这样结束:

    @Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId() == R.id.button_save){
        do_save();  // saves to a file

  //  I want something like: caller.getListView().invalidate();

         finish();
                    }
    if(v.getId() == R.id.button_cancel){
        finish();
                    }
}

编辑完成后,我可以覆盖或调用什么方法?在这一点上,我想read_data()然后再load_dynamic_list()一次。

4

2 回答 2

0

您必须使用 AsyncTask。

首选网址:

http://steveliles.github.com/android_s_asynctask.html http://www.vogella.com/articles/AndroidPerformance/article.html

举个例子:

http://labs.makemachine.net/2010/05/android-asynctask-example/

于 2013-02-10T13:20:13.337 回答
0
 @Override
 protected void onResume() {
      super.onResume();

     list=new Data_List(this);
     list.read_data();
           load_dynamic_list();    // becuase whatever was edited needs to be reread. 

}
于 2013-02-10T15:41:06.923 回答