android– 如何获取已选择的片段

android– 如何获取已选择的片段,第1张

概述我正在使用片段创建一个标签应用程序.我已经成功创建了选项卡,但现在我需要在选择特定片段时创建一个对象.例如当我选择SettingsTab时,我需要调用Test类中定义的函数.同样毁灭//SettingsTabpackagecom.example.sensorspositioningn;importandroid.app.Fragment;importan

我正在使用片段创建一个标签应用程序.

我已经成功创建了选项卡,但现在我需要在选择特定片段时创建一个对象.例如当我选择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 – 如何获取已选择的片段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1097598.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存