使用意图在Android选项卡之间切换
我希望了解如何使用intent在选项卡之间切换 在我的情况下,我使用两个选项卡:使用意图在Android选项卡之间切换,android,android-activity,tabs,android-intent,Android,Android Activity,Tabs,Android Intent,我希望了解如何使用intent在选项卡之间切换 在我的情况下,我使用两个选项卡: Resources res = getResources(); TabHost tabHost = getTabHost(); TabHost.TabSpec spec; // Capture tab spec = tabHost.newTabSpec("capture").setIndicator(null, res.getDrawable(R.drawable.ic_tab_capture)) .se
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
// Capture tab
spec = tabHost.newTabSpec("capture").setIndicator(null,
res.getDrawable(R.drawable.ic_tab_capture))
.setContent(new Intent(this,CaptureActivity.class));
tabHost.addTab(spec);
// Upload tab
spec = tabHost.newTabSpec("upload").setIndicator(null,
res.getDrawable(R.drawable.ic_tab_capture))
.setContent(new Intent(this,ImageUpload.class));
tabHost.addTab(spec);
为了简化我的目标,my CaptureActivity.java包含以下代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.capture);
Intent intent = new Intent(this, ImageUpload.class);
startActivityForResult(intent, 0);
}
我所期待的是,应用程序应该立即切换到第二个标签(ImageUpload活动),这很好,但标签本身消失了。我将ImageUpload活动作为独立页面,而不是选项卡本身
知道哪里出了什么问题吗?首先调用firing ImageUpload.java只会激发ImageUpload.class,但tabhost肯定会消失 您需要在添加两个tabHost的位置启动MainActivity选项卡Activity 1.图像上传 2.捕获活动 这将维持你的工作表 像这样称呼意图
现在主活动已经在运行,所以指针直接指向主活动内的onNewIntent()
在MainActivity中重写onNewIntent() =====================================
public class MainActivity extends TabActivty
{
pubilc static TabHost tabhost;
public void onCreate()
{
//where you added your two tab spec
//added them
}
public void onNewIntent(intent)
{
super.onNewIntent(intent);
tabHost.setCurrentTab(1);//1-depends where you want to switch-tabIndexno, I assume Upload is at 2nd position (so "1")
Activity currentActivity=getCurrentActivity();
if(currentActivity instanceof Upload)
{
((upload)currentActivity).onCreate();//watever method you want to call
}
}
}
在创建tabhost的父活动类中,我实现了如下方法:
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
在我希望能够在内部切换到另一个选项卡的选项卡内,我创建了以下方法:
public void switchTabInActivity(int indexTabToSwitchTo){
YOURTABHOSTACTIVITY ParentActivity;
ParentActivity = (YOURTABHOSTACTIVITY) this.getParent();
ParentActivity.switchTab(indexTabToSwitchTo);
}
如果您想了解这段代码的一个很好的示例,可以查看我的MintTrack项目。ImageUpload活动不强制存在于选项卡中。如果有意切换,则不会启动TabActivity上的选项卡,而是独立启动它。考虑其他机制在你的标签之间切换一个。检查我的答案在这个帖子:希望这有帮助!!啊,好的。酷。上面描述的方法很好用。我改变了我的计划:事实上CaptureActivity将我重定向到非选项卡式ImageUpload似乎很适合我的GUI计划。但现在我有下一个麻烦;-)如何将非选项卡式活动重定向到选项卡式活动?在我的例子中,从ImageUpload到CaptureActivity?如果您来自选项卡,只需调用您的非选项卡活动即可返回。
public void switchTabInActivity(int indexTabToSwitchTo){
YOURTABHOSTACTIVITY ParentActivity;
ParentActivity = (YOURTABHOSTACTIVITY) this.getParent();
ParentActivity.switchTab(indexTabToSwitchTo);
}