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的活动

我有两个问题:

  • 当我选择一个联系人时,我转到另一个ListActivity(Options.java),其中包含关于所选联系人的选项。好的,当我从Options.java中按back按钮时,以前的联系人列表是空的。我怎样才能看到联系人???我试图处理Back按钮以返回一个.class,但是它离开了一般应用程序。注意:所有意图都是用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP声明的

  • 我在A.class的菜单按钮中添加了一个选项。此选项为“添加新联系人”:


  • 我如何等待完成活动以使用新联系人更新联系人列表?我试过:

    • 使用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()方法,但不执行任何操作:
    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()和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
    
    }