
我正在使用片段创建一个标签应用程序.
我已经成功创建了选项卡,但现在我需要在选择特定片段时创建一个对象.例如当我选择SettingsTab时,我需要调用Test类中定义的函数.同样毁灭
// SettingsTabpackage com.example.sensorspositioningn;import androID.app.Fragment;import androID.os.Bundle;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;public class SettingsTab extends Fragment { public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.settingstab, container, false); }}这是mainActivity中的代码:
protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); appContext = getApplicationContext(); //Actionbar Actionbar actionbar = getActionbar(); actionbar.setNavigationMode(Actionbar.NAVIGATION_MODE_TABS); Actionbar.Tab Tab1= actionbar.newTab().setText("Tab1"); Actionbar.Tab Tab2= actionbar.newTab().setText("Tab2"); Actionbar.Tab Tab3= actionbar.newTab().setText("Tab3"); Actionbar.Tab SettingsTab = actionbar.newTab().setText("Settings"); Fragment Tab1F= new Tab1(); Fragment Tab2F= new Tab2(); Fragment Tab3F= new Tab3(); Fragment mSettingsFragment = new SettingsTab(); Tab1.setTabListener(new MyTabsListener(Tab1F)); Tab1.setTabListener(new MyTabsListener(Tab2F)); Tab1.setTabListener(new MyTabsListener(Tab3F)); SettingsTab.setTabListener(new MyTabsListener(mSettingsFragment)); actionbar.addTab(Tab1); actionbar.addTab(Tab2); actionbar.addTab(Tab3); actionbar.addTab(SettingsTab); }protected voID onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("tab", getActionbar().getSelectednavigationIndex()); }class MyTabsListener implements Actionbar.TabListener { public Fragment fragment; public MyTabsListener(Fragment fragment) { this.fragment = fragment; } public voID onTabReselected(Tab tab, FragmentTransaction ft) { Toast.makeText(MainActivity.appContext, "Reselected!", Toast.LENGTH_LONG).show(); } public voID onTabSelected(Tab tab, FragmentTransaction ft) { ft.replace(R.ID.fragment_container, fragment); } public voID onTabUnselected(Tab tab, FragmentTransaction ft) { ft.remove(fragment); } }解决方法:
在Actionbar.TabListener中你可以这样做 – (我假设你需要对象在Activity中)
class MyTabsListener implements Actionbar.TabListener { public Fragment fragment; public MyTabsListener(Fragment fragment) { this.fragment = fragment; } public voID onTabReselected(Tab tab, FragmentTransaction ft) { Toast.makeText(MainActivity.appContext, "Reselected!", Toast.LENGTH_LONG).show(); } public voID onTabSelected(Tab tab, FragmentTransaction ft) { ft.replace(R.ID.fragment_container, fragment); if(fragment instanceof SettingsTab) { // Create your object, call your function } } public voID onTabUnselected(Tab tab, FragmentTransaction ft) { ft.remove(fragment); if(fragment instanceof SettingsTab) { // Destroy your object } }} 总结 以上是内存溢出为你收集整理的android – 如何获取已选择的片段全部内容,希望文章能够帮你解决android – 如何获取已选择的片段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)