[英]How do I refresh my ListView after the Activity launched by “new Intent(ContactsContract.Intents.Insert.ACTION)” finishes?
我有一個類( Contacts.java
),它擴展了Activity
並具有一個帶有3 TabHost
:
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的Activity。
我有兩個問題:
選擇聯系人時,我將轉到另一個ListActivity(Options.java),其中包含有關所選聯系人的選項。 好吧,當我從Options.java中按下“后退”按鈕時,以前的聯系人列表為空。 我如何看到聯系人??? 我試圖處理“后退”按鈕以返回A.class,但是,它離開了常規應用程序。 注意:所有意圖都用Intent.FLAG_ACTIVITY_CLEAR_TOP聲明。
我在A.class的菜單按鈕中添加了一個選項。 此選項是“添加新聯系人”:
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=new MenuInflater(getApplicationContext()); inflater.inflate(R.menu.options_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_add_contact: Intent addContactIntent = new Intent(ContactsContract.Intents.Insert.ACTION); addContactIntent.setData(ContactsContract.Contacts.CONTENT_URI); startActivity(addContactIntent); break; } return true; }
如何等待完成活動以使用新聯系人更新聯系人列表? 我努力了:
Contact.class:
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()並重寫onActivityResult可以知道開始的活動何時結束
在Contacts.java
onResume
方法內部,重新初始化所有列表。 因此,每次您回到Contacts.java
活動時, Contacts.java
列表都會刷新...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.