Java “在”启动活动后,如何刷新列表视图;新意向(合同、意向、插入、行动);结束?
我有一个类(Java “在”启动活动后,如何刷新列表视图;新意向(合同、意向、插入、行动);结束?,java,android,Java,Android,我有一个类(Contacts.java),它扩展了Activity,并有一个TabHost,有3个子类: TabHost tabHost = (TabHost) findViewById(R.id.tabhost); LocalActivityManager mlam = new LocalActivityManager(this, false); mlam.dispatchCreate(savedInstanceState); tabHost.setup(ml
Contacts.java
),它扩展了Activity
,并有一个TabHost
,有3个子类:
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
LocalActivityManager mlam = new LocalActivityManager(this, false);
mlam.dispatchCreate(savedInstanceState);
tabHost.setup(mlam);
TabHost.TabSpec spec;
Intent intentA = new Intent().setClass(this, A.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("A").setIndicator("A").setContent(intentA);
tabHost.addTab(spec);
Intent intentB = new Intent().setClass(this, B.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("B").setIndicator("B").setContent(intentB);
tabHost.addTab(spec);
Intent intentC = new Intent().setClass(this, C.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("C").setIndicator("C").setContent(intentC);
tabHost.addTab(spec);
每个类(A.java、B.java和C.java)都显示不同的联系人列表。注意:我不使用ListActivity,我使用带有ListView的活动
我有两个问题:
我如何等待完成活动以使用新联系人更新联系人列表?我试过:
- 使用finish();并从child(A.this)完成;在“break”之前,但它会离开常规应用程序,而不是只关闭一个.class来重新创建
- 在onActivityResult()中使用startActivityForResult()而不是startActivity(),但我不知道将setResult()和finish()放在哪里,因为Intent addContactIntent=new Intent(ContactsContract.Intents.Insert.ACTION)是Android的本机意图
- 在“return true”之前刷新列表,但这是在添加联系人之前完成的
- 我在Contact.class中添加了listener以检测更改,并在每个子级中调用onResume()方法,但不执行任何操作:
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
String currentTag = tabHost.getCurrentTabTag();
if(currentTag.equals("A")){
//intentA.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mlam.startActivity(currentTag, new Intent(intentA));
} else if(currentTag.equals("B")){
//intentB.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mlam.startActivity(currentTag, new Intent(intentB));
}else if(currentTag.equals("C")){
//intentC.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mlam.startActivity(currentTag, new Intent(intentC));
}
}
});*/
班级…:
@Override
public void onResume() {
super.onResume();
//refresh code
}
使用startActivityForResult()和override onActivityResult可了解联系人中启动的活动何时完成。javaInner
onResume
方法重新初始化所有您的列表。因此,每次您返回到Contacts.java
活动时,您的联系人列表都会刷新…我如何等待完成活动以使用新联系人更新联系人列表?我尝试过:使用startActivityForResult()代替startActivity()及其onActivityResult(),但我不知道将setResult()和finish()放在哪里,因为这是android的本机意图;ContactListAdapter2=setAllContacts();列表.设置适配器(适配器2);adapter2.notifyDataSetChanged();不要工作
@Override
public void onResume() {
super.onResume();
//refresh code
}