我有tabhost包含两个选项卡(每个都是一个活动):"添加新数据"和"我的数据"。首先显示的默认选项卡是"添加新数据"因为它是#1选项卡。
要访问这两个标签,我必须先登录。我想要实现的是我想传递"用户名"的价值。登录活动中的文本字段到"我的数据" (第二个选项卡)选项卡。我非常困惑,因为我必须点击标签"我的数据"打开它,我不知道如何将一个文本字段值从Login类传递到选项卡("我的数据")。
如果您对如何实现它有任何建议,请告诉我。
我已经在论坛中搜索过但没有找到合适的解决方案。 这是我在tabhost类(Dashboard.java)中的代码:
public class Dashboard extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost host = getTabHost();
host.addTab(host.newTabSpec("one").setIndicator("ADD NEW DATA")
.setContent(new Intent(this, Input_form.class)));
host.addTab(host.newTabSpec("two").setIndicator("MY DATA")
.setContent(new Intent(this, MyData.class)));
}
// On Back Button Pressed
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
startActivity(new Intent(this, HomeLogin.class));
return true;
}
return super.onKeyDown(keyCode, event);
}
}
我可以在上面的代码中修改任何内容来实现我想要的吗?如果是,请告诉我,或者如果不是通过此代码,请告诉我 谢谢
答案 0 :(得分:0)
最后,在阅读了几个教程和示例后,我已经找到了解决此问题的方法。我将在这里分享,所以那些有类似问题的人可以克服它。
诀窍是我不需要传递文本字段值(用作用户名)。我只需要通过Login类在数据库中选择用户的id,并通过intent传递给tabhost类。
要将id传递给制表符,我在Login类中使用putExtra
就是这样做的:
Intent passId = new Intent(getApplicationContext(), Dashboard.class);
passId.putExtra(ID_USER, iduser);
startActivity(passId);
这是秘密,要抓住Extra,我在我的tabhost类中这样做了(我从这里读到它:How to pass a parameter to a new activity with tab host)
这是我在tabhost类(Dashboard.java)中的代码:
//passing id to tab #1
Intent passing1 = new Intent();
Bundle bundle = getIntent().getExtras();
String id=bundle.get(ID_USER).toString();
passing1.putExtra("iduser", id);
passing1.setClass(this, Input_form.class);
TabHost host = getTabHost();
host.addTab(host.newTabSpec("one").setIndicator("ADD NEW DATA")
.setContent(passing1));
//passing idkont to tab #2
Intent passing2 = new Intent();
Bundle bundle2=getIntent().getExtras();
String id2 = bundle2.get(ID_USER).toString();
passing2.putExtra("iduser", id2);
passing2.setClass(this, MyData.class);
host.addTab(host.newTabSpec("two").setIndicator("MY DATA")
.setContent(passing2));
然后,在两个选项卡的活动类中,我只需要像往常一样使用getIntent和getStringExtra捕获额外的内容。 在两个类中获得额外的功能后,最后我现在可以使用传递给选项卡的数据/变量在我的应用程序中执行更多的CRUD。
希望它有所帮助, 谢谢