我刚接触Android,最近在做Tab切换,本来是想用TabHost+Activity,但是发现TabHost用到的LocalActivityManager或ActivityGroup或TabActivity全部被标注为不建议使用,可如果不用这些的话,TabHost在tabHost.setup的时候会报错,然后我试了FragmentTabHost,可这个里面只用放入Fragment,我不想每个界面都是Fragment,我感觉应该是Activity,然后如果需要的话,在Activity里面添加Fragment,所以我就迷糊了,我要怎么用TabHost,求指教~~~~~~~~~~~~~~~~~~~
解决方案 »
- 自定义View要求子元素大小填充父元素,怎么做
- 像来电通的这个功能怎么实现,有图
- Bitmap 位图处理
- android作客户端连接127.0.0.1服务程序被拒绝
- android的tcp传输乱码问题,请问大家有解决办法吗?
- java.lang.NoSuchMethodError: android.widget.RadioButton.setBackground求大神解决
- android菜鸟求教eclipse创建avd问题
- android工程如何打开office文档和pdf
- AndroidAnnotations 使用问题 求解
- 求个正则表达式
- Android在电脑上实现文件管理, 是个什么原理?
- 求助-android仿微信发送图片显示,语音的方法
Fragment是个好东西啊
使用一个FragmentActivity,里面的页面为Fragment,Tab按钮为RadioButton
用一个hashmap 将RadioButton与具体页面关联起来
动态的replace Framgment就行了
TabSpec messageSpec=mTabHostMainHome.newTabSpec(MESSAGE_TAB).setIndicator(MESSAGE_TAB).setContent(new Intent(this,MessageActivity.class));TabSpec shippingCommunitySpec=mTabHostMainHome.newTabSpec(SHIPPINGCOMMUNITY_TAB).setIndicator(SHIPPINGCOMMUNITY_TAB).setContent(new Intent(this,ShippingCommunityActivity.class));
mTabHostMainHome.addTab(messageSpec);至于ShippingCommunityActivity 这个,继承FragmentActivity就OK了
= =!还是老问题,TabHost setup方法中的参数哪里获取,跳转是用startActivity(Intent intent),setup里面需要参数,否则回报错
public class MyActivity extends FragmentActivity{
public static FragmentManager fm;
public static Fragment currentFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment);
fm = getSupportFragmentManager();
// 只当容器,主要內容已Fragment呈现
initFragment(new ProcessFragment());
}
// 切换Fragment
public static void changeFragment(Fragment f){
changeFragment(f, false);
currentFragment=f;
}
// 初始化Fragment(FragmentActivity中呼叫)
public static void initFragment(Fragment f){
changeFragment(f, true);
currentFragment=f;
}
private static void changeFragment(Fragment f, boolean init){
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.simple_fragment, f);
if(!init)
ft.addToBackStack(null);
ft.commit();
}
}
这个是FragmentActivity,然后每一个Fragment要跳转到别的Fragment的时候:MyActivity.changeFragment(new AFragment());
跟TabHost没关系吗?你这样的做法是在一个FragmentActivity内切换Fragment,总体是一个Activity,内容是每个Fragment,是吗