gpt4 book ai didi

android tab 将 intent extras 传递给新的 tabs Activity

转载 作者:搜寻专家 更新时间:2023-11-01 08:16:14 25 4
gpt4 key购买 nike

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

提前致谢院长欧

最佳答案

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

假设您不想采用这种方法并且真的想使用 Intent extras 在 TabHost 内的 Activity 之间传递数据,您可以在使用 TabHosts Intent(通过 getParent() 访问)的地方执行类似以下 hack 的操作.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 tab 将 intent extras 传递给新的 tabs Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com