package com.tab;
import java.lang.reflect.Field;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.XmlResourceParser;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import android.widget.TabHost.TabSpec;
public class TabManager extends TabActivity {
private TabManager th;
private TabWidget tabWidget;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_content);
th = this;
Constant.tabHost = (TabHost) findViewById(android.R.id.tabhost);
LayoutInflater.from(this).inflate(R.layout.tabcontent,
Constant.tabHost.getTabContentView(), true);
tabWidget = Constant.tabHost.getTabWidget();
Constant.tabHost.addTab(Constant.tabHost.newTabSpec("tab1")
.setIndicator(
"Tab1",
th.getResources().getDrawable(
R.drawable.ic_menu_home_tab)).setContent(
new Intent(this, Tab1.class)));
Constant.tabHost.addTab(Constant.tabHost.newTabSpec("tab2")
.setIndicator(
"Tab2",
th.getResources().getDrawable(
R.drawable.ic_menu_camera_tab)).setContent(
new Intent(this, Tab2.class)));
Constant.tabHost.addTab(Constant.tabHost.newTabSpec("tab3")
.setIndicator(
"Tab3",
th.getResources().getDrawable(
R.drawable.ic_menu_search_tab)).setContent(
new Intent(this, Tab3.class)));
Constant.tabHost.addTab(Constant.tabHost.newTabSpec("tab4")
.setIndicator(
"Tab4",
th.getResources().getDrawable(
R.drawable.ic_menu_upload_tab)).setContent(
new Intent(this, Tab4.class)));
TabHost.TabSpec tabSpec = Constant.tabHost.newTabSpec("tab5")
.setIndicator(
"Tab6",
th.getResources().getDrawable(
R.drawable.ic_menu_preferences_tab));
tabSpec.setContent(R.id.imglay);
Constant.tabHost.addTab(tabSpec);
View view = tabWidget.getChildAt(4);
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new Builder(TabManager.this);
builder.setMessage("没有正常网络连接,请检查网络设置");
builder.setTitle("提示");
builder.setPositiveButton("确认",
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
builder.setNegativeButton("确认",
new android.content.DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
});
builder.create().show();
}
});
Constant.tabHost.setCurrentTab(0);
// new Alert(th).setBuilder(1, null, Build.BOARD+"\n"+
// Build.BRAND+"\n"+Build.DEVICE+"\n"+Build.DISPLAY+"\n"+Build.FINGERPRINT+"\n"+
// Build.HOST+"\n"+Build.ID+"\n"+Build.MODEL+"\n"+Build.PRODUCT+"\n"+Build.TAGS+"\n"+Build.TIME+"\n"+
// Build.TYPE+"\n"+Build.USER+"\n"+Build.VERSION.RELEASE+":"+Build.VERSION.INCREMENTAL+":"+Build.VERSION.SDK,
// null, null);
Field mBottomLeftStrip;
Field mBottomRightStrip;
for (int i = 0; i < tabWidget.getChildCount(); i++) {
/**
* 此方法是为了去掉系统默认的色白的底角 在 TabWidget中mBottomLeftStrip、mBottomRightStrip
* 都是私有变量,但是我们可以通过反射来获取 由于还不知道Android 2.2的接口是怎么样的,现在先加个判断好一些
*/
if (Integer.parseInt(Build.VERSION.SDK) <= 5) {
/* try {
mBottomLeftStrip = tabWidget.getClass().getDeclaredField(
"mBottomLeftStrip");
mBottomRightStrip = tabWidget.getClass().getDeclaredField(
"mBottomRightStrip");
if (!mBottomLeftStrip.isAccessible()) {
mBottomLeftStrip.setAccessible(true);
}
if (!mBottomRightStrip.isAccessible()) {
mBottomRightStrip.setAccessible(true);
}
mBottomLeftStrip.set(tabWidget, getResources().getDrawable(
R.drawable.tab_one_normal));
mBottomRightStrip.set(tabWidget, getResources()
.getDrawable(R.drawable.tab_one_normal));
} catch (Exception e) {
e.printStackTrace();
}*/
} else {
// 貌似也可以去掉系统默认的色白的底角
Constant.tabHost.setPadding(Constant.tabHost.getPaddingLeft(),
Constant.tabHost.getPaddingTop(), Constant.tabHost
.getPaddingRight(), Constant.tabHost
.getPaddingBottom()-1 );//原文是-5,我这边试了一下,-1最好。
}
View v = tabWidget.getChildAt(i);
// 设置tab背景颜色
v.setBackgroundResource(R.drawable.tab_indicator);
// 设置tab中标题文字的颜色,不然默认为黑色
XmlResourceParser xpp = getResources().getXml(
R.color.tab_font_selector);
try {
ColorStateList csl = ColorStateList.createFromXml(
getResources(), xpp);
TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(
android.R.id.title);
tv.setTextColor(csl);
} catch (Exception e) {
}
}
Constant.tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
}
});
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
牛叔的tabhost.rar (54个子文件)
zdy_tab
.project 850B
default.properties 362B
bin
com
tab
R$string.class 365B
Tab2.class 633B
Tab5$2.class 780B
R$layout.class 430B
Tab5$1.class 780B
R$drawable.class 655B
Tab5.class 1KB
Tab1$1.class 1KB
Tab4.class 633B
TabManager$1.class 2KB
TabManager$1$2.class 823B
TabTest.class 346B
TabManager.class 4KB
Constant.class 310B
R.class 491B
TabManager$1$1.class 823B
R$color.class 1KB
Tab3.class 2KB
R$attr.class 307B
Tab1.class 962B
R$id.class 627B
TabManager$2.class 727B
Tab3$Broad.class 1KB
resources.ap_ 18KB
classes.dex 11KB
bottom_tabhost.apk 26KB
proguard.cfg 1KB
AndroidManifest.xml 1KB
src
com
tab
Tab5.java 961B
TabTest.java 236B
Tab2.java 357B
TabManager.java 6KB
Constant.java 115B
Tab1.java 842B
Tab3.java 1KB
Tab4.java 357B
res
values
colors.xml 905B
strings.xml 112B
layout
tab_content.xml 846B
tabcontent.xml 2KB
main.xml 415B
drawable
ic_menu_camera_tab.png 5KB
tab_indicator.xml 845B
ic_menu_search_tab.png 5KB
ic_menu_home_tab.png 4KB
tab_one_normal.png 3KB
ic_menu_preferences_tab.png 4KB
ic_menu_upload_tab.png 4KB
icon.png 3KB
color
tab_font_selector.xml 1KB
.classpath 280B
gen
com
tab
R.java 3KB
assets
共 54 条
- 1
yangyang566566
- 粉丝: 3
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页