80,466
社区成员




protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentTabHost tabHost = (FragmentTabHost) findViewById(R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
Bundle bundle = new Bundle();
bundle.putString("status", "1");
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("wait"),Fragment1.class,bundle);
bundle = new Bundle();
bundle.putString("status", "2");
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("ing"),Fragment1.class,bundle);
bundle = new Bundle();
bundle.putString("status", "3");
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("ed"),Fragment1.class,bundle);
}
Fragment1类关键代码如下Bundle bundle = this.getArguments();
_status = bundle.getString("status");
最开始总是误区onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)这里的savedInstanceState是传递过来的BundletabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("wait"), Fragment1.class,null);
该如何向你说的这样,setarguments呢? @节操在此 [/quote]
TabHost.OnTabChangeListener mTabChangeListener = new TabHost.OnTabChangeListener() {
public void onTabChanged(String tabId) {
Fragment frame = Fragment.instantiate(HomeActivity.this, tabId);
frame.setArguments(null);
replaceFragment(frame);
}
};
你要做的是在tab切换时往Fragment传参是吧?如果是的话在tabchange里做处理[/quote]
因为初始化TabSpec时是这样的TabHost.TabSpec specScan = mTabHost.newTabSpec(ScanFragment.class.getName());
所以onTabChanged方法的参数tabId代表的是fragment的名字tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("wait"), Fragment1.class,null);
该如何向你说的这样,setarguments呢? @节操在此 [/quote]
TabHost.OnTabChangeListener mTabChangeListener = new TabHost.OnTabChangeListener() {
public void onTabChanged(String tabId) {
Fragment frame = Fragment.instantiate(HomeActivity.this, tabId);
frame.setArguments(null);
replaceFragment(frame);
}
};
你要做的是在tab切换时往Fragment传参是吧?如果是的话在tabchange里做处理MainActivity main = (MainActivity) getActivity();
,
通过 Activity 的实例获取值。
这个比回调简单@Li_Jun__ 可以说的再详细点吗? 接口回调。。
f.setArguments(args);
来传参。[quote=引用 楼主 luofang11 的回复:] 使用fragmenttabhost做了一个导航,因为需要,我需要在启动对应的tab时,传入一个参数,但不知道怎么传?求指导…… 这样行吗:fragmentTabHost.add(xx,xx.class,bundler);如果把参数放进bundler中,那么在fragment界面中,如果获取这个对象呢?
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("wait"), Fragment1.class,null);
该如何向你说的这样,setarguments呢? @节操在此 接口回调。。
使用fragmenttabhost做了一个导航,因为需要,我需要在启动对应的tab时,传入一个参数,但不知道怎么传?求指导…… 这样行吗:fragmentTabHost.add(xx,xx.class,bundler);如果把参数放进bundler中,那么在fragment界面中,如果获取这个对象呢?