简单的频道管理

本文介绍了一个基于Android的应用程序如何实现频道管理和UI组件的动态加载。通过使用自定义的FragmentPagerAdapter,应用程序能够从数据库中获取频道数据,并将其显示在TabLayout和ViewPager组件上。此外,还详细介绍了如何在应用中请求必要的权限,如读写外部存储和震动权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//1导channelmanagement的Module
//2导入清单文件的权限
   <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!-- 震动权限 -->
    <uses-permission android:name="android.permission.VIBRATE"/>



//3继承ChannelApplication 
public class MyApp extends ChannelApplication {

    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(config);

    }
}


	

//4写标题的Frag  
public class Frag1 extends BaseFragment {


    private ViewPager pager;
    private TabLayout tab;
    private TextView text;
    private ArrayList<String> tabs;

    @Override
    protected int layoutResID() {
        return R.layout.frag1;
    }

    @Override
    protected void initView(View view) {
        tab = view.findViewById(R.id.tab);
        pager = view.findViewById(R.id.pager);
        text = view.findViewById(R.id.text);

    }

    @Override
    protected void initData() {
        //获取数据库中添加的数据的集合
        ArrayList<ChannelItem> channelItems = DBUtil.getTabData(getActivity());
        //创建标签集合
        tabs = new ArrayList<>();
        for (int i = 0; i < channelItems.size(); i++) {
            String tabname = channelItems.get(i).getName();
            tabs.add(tabname);
        }

        //适配器
        pager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                ChildFragment fragment = new ChildFragment();
                Bundle bundle = new Bundle();
                bundle.putInt("position",i);
                fragment.setArguments(bundle);



                return fragment;
            }

            @Override
            public int getCount() {
                return tabs.size();
            }

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return tabs.get(position);
            }
        });

        //关联适配器
        tab.setupWithViewPager(pager);



        //点击跳转
        text.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getActivity(), ChannelActivity.class);
                startActivityForResult(intent, 0);
            }
        });
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //获取数据库添加的频道的集合
        ArrayList<ChannelItem> channelItems  = DBUtil.getTabData(getActivity());
        //清空集合
       tabs.clear();
       //添加集合
        for (int i = 0; i < channelItems.size(); i++) {
            String tabname = channelItems.get(i).getName();
            tabs.add(tabname);
        }

        //适配器
        pager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                ChildFragment fragment = new ChildFragment();
                Bundle bundle = new Bundle();
                bundle.putInt("position",i);
                fragment.setArguments(bundle);
                return fragment;
            }

            @Override
            public int getCount() {
                return tabs.size();
            }

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return tabs.get(position);
            }
        });

        //关联适配器
        tab.setupWithViewPager(pager);


    }
}

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值