我如何在TabHosts中重新填充我的列表视图?

时间:2015-07-28 00:58:49

标签: java android performance android-activity

我希望能够在用户点击按钮时重新启动活动。最重要的是,在我重新启动之后,我想要标签主机&标签仍然显示。

问题: 目前,当我重新启动活动时,标签主机&标签在重新开始后消失了。

我已经大量研究过这个问题,但是我的代码的复杂性很有挑战性,其他答案对我的情况没有帮助。

代码&目前采用的方法:

我使用tabHost创建了四个选项卡:

INBOX_SPEC - InboxActivity类
OUTBOX_SPEC - OutActivity Clas s PROFILE_SPEC - ProfileActivity类
LPGA_SPEC - LPGAActivity Class

InboxActivity 类中,当用户点击按钮时,我想重新启动InboxActivity。

代码:InboxActivity类:

 button.setOnClickListener(new OnClickListener()
    {
      public void onClick(View v)
      {

          finish();
           Intent intent = getIntent();
          //destroyActivity(intent);
         startActivity(intent);
           // Intent refresh = new Intent();
           // startActivity(refresh);//Start the same Activity
           // finish(); //finish Activity.

         // InboxActivity.refreshContent();

      }
    });

代码:在TabAndListView类中创建Tabhost:

   TabHost tabHost = getTabHost();

    getActionBar().hide();

    // Inbox Tab
    TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
    // Tab Icon
    inboxSpec.setIndicator(INBOX_SPEC, getResources().getDrawable(R.drawable.icon_inbox));
    Intent inboxIntent = new Intent(this, InboxActivity.class);
    // Tab Content
    inboxSpec.setContent(inboxIntent);

    // Outbox Tab
    TabSpec outboxSpec = tabHost.newTabSpec(OUTBOX_SPEC);
    outboxSpec.setIndicator(OUTBOX_SPEC, getResources().getDrawable(R.drawable.icon_outbox));
    Intent outboxIntent = new Intent(this, OutboxActivity.class);
    outboxSpec.setContent(outboxIntent);

    // Profile Tab
    TabSpec profileSpec = tabHost.newTabSpec(PROFILE_SPEC);
    profileSpec.setIndicator(PROFILE_SPEC, getResources().getDrawable(R.drawable.icon_profile));
    Intent profileIntent = new Intent(this, ProfileActivity.class);
    profileSpec.setContent(profileIntent);

    // LPGA_SPEC Tab
    TabSpec LPGASpec = tabHost.newTabSpec(LPGA_SPEC);
    LPGASpec.setIndicator(LPGA_SPEC, getResources().getDrawable(R.drawable.icon_profile));
    Intent LPGAIntent = new Intent(this, WomenActivity.class);
    LPGASpec.setContent(LPGAIntent);



    // Adding all TabSpec to TabHost
    tabHost.addTab(inboxSpec); // Adding Inbox tab
    tabHost.addTab(outboxSpec); // Adding Outbox tab
    tabHost.addTab(profileSpec); // Adding Profile tab
    tabHost.addTab(LPGASpec); // Adding Profile tab
}

1 个答案:

答案 0 :(得分:1)

您只需重新运行您在List中填充ListView的代码:

button.setOnClickListener(new OnClickListener()
{
  public void onClick(View v)
  {

      //Rerun the code where you populate the listView here

  }
});

然后确保在重新填充之前已重置列表视图