Android 在子进程完成后更新列表
应用程序的主要活动是显示列表。用户单击列表上的某个内容,打开编辑屏幕。在fisnish之后,编辑屏幕被关闭——我希望原始列表被更新为编辑屏幕上出现的任何内容。我将数据保存到一个文件中,然后我可以再次读取它来更新列表。但是我不知道在哪里插入重读代码 在ListActivity中,当列表再次获得焦点时,调用什么方法 这是我的主要列表活动代码: 创建视图:Android 在子进程完成后更新列表,android,Android,应用程序的主要活动是显示列表。用户单击列表上的某个内容,打开编辑屏幕。在fisnish之后,编辑屏幕被关闭——我希望原始列表被更新为编辑屏幕上出现的任何内容。我将数据保存到一个文件中,然后我可以再次读取它来更新列表。但是我不知道在哪里插入重读代码 在ListActivity中,当列表再次获得焦点时,调用什么方法 这是我的主要列表活动代码: 创建视图: @Override public void onCreate(Bundle savedInstanceState) { su
@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();
}
}
编辑完成后,我可以重写或调用将执行的哪些方法?此时,我想
读取数据()
,然后再次加载动态列表()
。您必须使用AsyncTask
首选URL:
举个例子:
谢谢KLAL,我可以看出这在我阅读数据时是有用的。但是,我需要知道编辑功能何时完成,以便更新显示的列表。有没有关于如何实现的建议?当加载数据时会调用此方法public void execute(Executor aExecutor,Params…aParams){//load data}当加载数据时会调用此方法受保护的void onpostsecute(Integer result){super.onpostsecute(result);}我不明白。编辑功能结束时是否会调用onPostExecute?数据完全加载后,onPostExecute将被执行。我已经解决了这个问题-所需的只是在onResume功能上再次读取数据,如下所示:
@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.
}