Android 选项卡将 Intent 附加信息传递给新选项卡 Activity

标签 android tabs android-intent extras

我已经阅读过类似的问题,但没有看到这样的问题。我有一个简单的计算器应用程序,有两个选项卡。每个人都有自己的 Activity 类(class)。我最初是在第一个屏幕上使用一个按钮编写的,该按钮会接受输入并将其传递到结果屏幕,该屏幕将进行一些计算,然后显示结果。现在我想用 TabHost 来做到这一点。我已设置好两个屏幕,但不知道如何获取输入并将其传递给结果 Activity 以进行计算并显示结果值。

提前致谢 迪安-O

最佳答案

最自然的方法是提供您自己的 android.app.Application 子类并使用它来存储共享数据。然后第一个选项卡将设置数据结构中的值,第二个选项卡将读取它们并使用它们来执行您想要执行的任何计算。参见这里:How to declare global variables in Android?

假设您不想采用这种方法,并且确实想使用 Intent extras 在 TabHost 内的 Activity 之间传递数据,您可以执行以下操作,其中使用 TabHosts Intent(通过 getParent() 访问) .getIntent()) 来回传递数据。

 public class Tab1 extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.tab_one);
  Button button = (Button) findViewById(R.id.btn);
  button.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    EditText x = (EditText) findViewById(R.id.x);
    EditText y = (EditText) findViewById(R.id.y);
    int a = Integer.parseInt(x.getText().toString());
    int b = Integer.parseInt(y.getText().toString());
    Intent i = getParent().getIntent();
    i.putExtra("a", a);
    i.putExtra("b", b);
    i.putExtra("tab", 1);
    TabActivity ta = (TabActivity) Tab1.this.getParent();
    ta.getTabHost().setCurrentTab(1);
   }
  });
 }
}


public class Tab2 extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TextView result = new TextView(this);
  Intent i = getParent().getIntent();
  int a = i.getIntExtra("a", 0);
  int b = i.getIntExtra("b", 0);
  int sum = a + b;
  result.setText(Integer.toString(sum));
        setContentView(result);
 }
}

关于Android 选项卡将 Intent 附加信息传递给新选项卡 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523181/

相关文章:

java - Android:如何从不同的类文件运行异步任务?

android - 如何在 Android fragment 中从互联网加载数据时关闭对话框

Android fragment 生命周期

javascript - Chrome : timeouts/interval suspended in background tabs?

html - 隐藏的选项卡未显示正确的布局

java - Android Mediaplayer无法使用路径/documents/audio:1159加载Uri

java - 套接字IO : Web socket error upon sending bigger payloads

android - 在 Android 中使用水平滑动实现垂直滚动

android - 如何在 Android 中使用 Intent 连接到已知的 WiFI?

android - 回到主要 Activity 的后退按钮引发 "Unfortunately Application has stopped"