Android的TabHost setCurrentTab() [英] Android TabHost setCurrentTab()
本文介绍了Android的TabHost setCurrentTab()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用TabHost和我有2个卡口与2 activityes我想设置第二个选项卡是默认选项卡,但是当tabhost开始,他首先加载TAB1和TAB2之前,因为在这些2 activityes我从web服务加载数据的,这是错误的!
我的问题是如何设置当前选项卡第二个选项卡空载第一个标签!
我tabhost code:
公共类TabsHandler扩展TabActivity {
私有静态TabHost tabHost;
意图意图;
私人无效setupTabHost(){
tabHost =(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(1);
}
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
如果(!isOnline())
Utils.DialogNoInternet(本);
字符串的authToken = getIntent()getExtras()的getString(令牌)。
龙角色= getIntent()getExtras()getLong之(角色)。;
串EventIdNotification = getIntent()getExtras()的getString(EventIdNotification)。。
的setContentView(R.layout.event_list_tabs); setupTabHost();
资源解析度= getResources();
。tabHost.getTabWidget()setClipChildren(假);
setupTab(新的TextView(本),res.getString(R.string.tab1_List),新意图()。setClass(这一点,EventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(EventIdNotification,EventIdNotification));
setupTab(新的TextView(本),res.getString(R.string.tab2_List),新意图()。setClass(这一点,PastEventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(isPast,真));
tabHost.setCurrentTab(1); }
公共无效switchTab(INT标签){
tabHost.setCurrentTab(标签);
}
公共布尔isOnline(){
ConnectivityManager厘米=
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetInfo的的NetworkInfo = cm.getActiveNetworkInfo();
如果(NetInfo的= NULL&放大器;!&安培; netInfo.isConnectedOrConnecting()){
返回true;
}
返回false;
}
私人无效setupTab(最终查看视图,最后字符串的标签,意图意图){
查看TabView的= createTabView(tabHost.getContext(),标签);
则tabspec setContent = tabHost.newTabSpec(标签);
setContent.setIndicator(TabView的);
setContent.setContent(意向);
tabHost.addTab(setContent);
} 私有静态视图createTabView(最终上下文的背景下,最终字符串文本){ 查看查看= LayoutInflater.from(上下文).inflate(R.layout.tabs_bg,NULL);
TextView的电视=(TextView中)view.findViewById(R.id.tabsText);
tv.setText(文本);
返回视图。
}
解决方案
公共类TabsHandler扩展TabActivity {
私有静态TabHost tabHost;
意图意图;
私人无效setupTabHost(){
tabHost =(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(2);
}
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
如果(!isOnline())
Utils.DialogNoInternet(本);
字符串的authToken = getIntent()getExtras()的getString(令牌)。
龙角色= getIntent()getExtras()getLong之(角色)。;
串EventIdNotification = getIntent()getExtras()的getString(EventIdNotification)。。
的setContentView(R.layout.event_list_tabs); setupTabHost();
资源解析度= getResources();
。tabHost.getTabWidget()setClipChildren(假);
setupTab(新的TextView(本),res.getString(R.string.tab1_List),新意图()。setClass(这一点,EventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(EventIdNotification,EventIdNotification));
setupTab(新的TextView(本),res.getString(R.string.tab2_List),新意图()。setClass(这一点,PastEventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(isPast,真));
tabHost.setCurrentTab(2);}
公共无效switchTab(INT标签){
tabHost.setCurrentTab(标签);
}
公共布尔isOnline(){
ConnectivityManager厘米=
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetInfo的的NetworkInfo = cm.getActiveNetworkInfo();
如果(NetInfo的= NULL&放大器;!&安培; netInfo.isConnectedOrConnecting()){
返回true;
}
返回false;
}
私人无效setupTab(最终查看视图,最后字符串的标签,意图意图){
查看TabView的= createTabView(tabHost.getContext(),标签);
则tabspec setContent = tabHost.newTabSpec(标签);
setContent.setIndicator(TabView的);
setContent.setContent(意向);
tabHost.addTab(setContent);
}私有静态视图createTabView(最终上下文的背景下,最终字符串文本){ 查看查看= LayoutInflater.from(上下文).inflate(R.layout.tabs_bg,NULL);
TextView的电视=(TextView中)view.findViewById(R.id.tabsText);
tv.setText(文本);
返回视图。
}
I use TabHost and i have 2 tabs with 2 activityes i want to set second tab to be default tab but when tabhost start he load first tab1 and before tab2 an this is wrong because in these 2 activityes i load data from webservice ! My question is how to set current tab second tab without load first tab!
My tabhost code:
public class TabsHandler extends TabActivity {
private static TabHost tabHost;
Intent intent;
private void setupTabHost() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(1);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!isOnline())
Utils.DialogNoInternet(this);
String authToken = getIntent().getExtras().getString("token");
Long role = getIntent().getExtras().getLong("role");
String EventIdNotification =getIntent().getExtras().getString("EventIdNotification");
setContentView(R.layout.event_list_tabs);
setupTabHost();
Resources res = getResources();
tabHost.getTabWidget().setClipChildren(false);
setupTab(new TextView(this), res.getString(R.string.tab1_List),new Intent().setClass(this, EventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("EventIdNotification", EventIdNotification));
setupTab(new TextView(this), res.getString(R.string.tab2_List),new Intent().setClass(this, PastEventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("isPast", "true"));
tabHost.setCurrentTab(1);
}
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
private void setupTab(final View view, final String tag,Intent intent) {
View tabview = createTabView(tabHost.getContext(), tag);
TabSpec setContent = tabHost.newTabSpec(tag);
setContent.setIndicator(tabview);
setContent.setContent(intent);
tabHost.addTab(setContent);
}
private static View createTabView(final Context context, final String text) {
View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}
解决方案
public class TabsHandler extends TabActivity {
private static TabHost tabHost;
Intent intent;
private void setupTabHost() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(2);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!isOnline())
Utils.DialogNoInternet(this);
String authToken = getIntent().getExtras().getString("token");
Long role = getIntent().getExtras().getLong("role");
String EventIdNotification =getIntent().getExtras().getString("EventIdNotification");
setContentView(R.layout.event_list_tabs);
setupTabHost();
Resources res = getResources();
tabHost.getTabWidget().setClipChildren(false);
setupTab(new TextView(this), res.getString(R.string.tab1_List),new Intent().setClass(this, EventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("EventIdNotification", EventIdNotification));
setupTab(new TextView(this), res.getString(R.string.tab2_List),new Intent().setClass(this, PastEventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("isPast", "true"));
tabHost.setCurrentTab(2);
}
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
private void setupTab(final View view, final String tag,Intent intent) {
View tabview = createTabView(tabHost.getContext(), tag);
TabSpec setContent = tabHost.newTabSpec(tag);
setContent.setIndicator(tabview);
setContent.setContent(intent);
tabHost.addTab(setContent);
}
private static View createTabView(final Context context, final String text) {
View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}
这篇关于Android的TabHost setCurrentTab()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文