Android 选项卡 - 避免在选项卡点击时重新创建 Activity

标签 android view android-activity tabs

我制作了一个小应用程序,它具有三个选项卡以显示三个不同的网页。它确实有效,但我有点担心我对整个事情的工作方式没有足够的控制权。当我单击一个选项卡时,我会加载一个网页(请参见下面的代码示例),现在当我单击另一个选项卡时,另一个页面会在另一个 View 中加载。当我回到第一个选项卡时,整个事情再次初始化并加载页面。有没有一种方法可以控制它,并根据需要将底层选项卡的 Activity 保持在当前状态(并在页面更改时只说“刷新”页面)。

我是否需要为此处理 onPause()/onResume() 方法,或者将我的选项卡实现为单个 Activity 的 View (这可能吗?)?如何存储 Activity 的状态以避免每次都重新初始化它?

这是如何将 Activity 挂接到选项卡上的:

intent = new Intent().setClass(this, tab_schedule.class);
  spec = tabHost.newTabSpec("Schedule").setIndicator("Schedule",
    res.getDrawable(R.drawable.tab_icon_schedule)).setContent(
    intent);
  tabHost.addTab(spec);

tab_schedule.class 做一个简单的网页加载:

@Override
 public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.tab_people);

  try {

   WebView currentView = (WebView) findViewById(R.id.tab_people_WebView);
   currentView.getSettings().setJavaScriptEnabled(true);
   currentView.loadUrl("http://pda.lenta.ru");

  } catch (Exception e) {
   Log.v("webClientInit", e.getMessage());
  }
 }

最佳答案

如果您不想为每个选项卡创建一个新 Activity ,您可以使用 TabWidget使用 FrameLayout 在 View 之间切换。

关于切换 Activity ,请参阅此 question一种不每次都重新创建 Activity 的方法。

无论如何,您应该始终实现 onPause 和 onResume 来恢复应用的状态。您可能想阅读 Activity Lifecycle ,但基本上你不能阻止你的 Activity 在进入后台时被杀死。因此,您应该将状态存储在 onPause 中。上面的链接也有一些关于如何这样做的信息。

关于Android 选项卡 - 避免在选项卡点击时重新创建 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561736/

相关文章:

iphone - View 的底部在模拟器和设备上被切断(单 View 应用程序)

asp.net-mvc - ASP.NET MVC 如何应用基于角色或基于身份验证的 View 呈现?

java - 如何解决布局中更多数字的 Editext 问题并从中获取值?

java - 如何制作Android java全局字符串变量?

ios - 在翻译动画期间跟踪 UIView 位置

android - 如何在双卡 android 中打开数据漫游设置?

Android 开发人员 "Upload new APK to Production 99% complete"并卡住

android - 构建后步骤 : Copy lib and headers to specific location

android - 显示比设备屏幕大的图像

Android - 如何使用 Spinner 隐藏/显示 View 对象