java radiogroup_android 菜单导航 (Fragment + RadioGroup)

article/2025/9/22 0:42:30

网上有很多讲利用Fragment + RadioGroup,actionbar + viewPager和TabHost做菜单导航和切换的例子。对于第三种现在已经过时了。所以讲讲自己对第一个的理解和经验分享,不过在此也简单说说第二种。

1、actionbar + viewpager

对于这种方式,其实在利用eclipse创建Activity的时候就可以直接让eclipse来为我们做好这样的模板。不过要在创建工程时使要求的最小SDK大于或等于11(也可以在配置文件中修改)

17abf1c34bf6d1a7557fe6cd9f541b82.png

在Navigation type选择:Scrollable tabs + swipe 或者 Fixed Tabs + swipe。

这样就会自动生成所需的菜单导航的结构。这样可以将生成的现有代码和xml布局赋值到自己想要的Activity类中和xml布局文件中。

里面具体的细节又是怎么样的呢?查看生成的代码,用到的类也就ActionBar,ViewPager,FragmentPagerAdapter以及Fragment。

如果想要加载自己的xml布局文件,那么可以将导航菜单和布局文件用两个数组保存。在getItem(int position)中使用(position是从0开始的),并且给Fragment传递布局文件参数就可以了。如果希望每个布局文件中控件拥有像点击、滑动的功能等,自己可以获取相应的引用后进行操作。

2、RadioGroup + Fragmentpackage com.example.zzz;

import android.app.Activity;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.RadioGroup;

import android.widget.RadioGroup.OnCheckedChangeListener;

//import android.support.v4.app.Fragment;

//import android.support.v4.app.FragmentActivity;

public class MainFragment2 extends Activity{

RadioGroup group;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

group = (RadioGroup) findViewById(R.id.group);

group.setOnCheckedChangeListener(new OnCheckedChangeListener() {

public void onCheckedChanged(RadioGroup group, int checkedId) {

click(checkedId);

}

});

}

void click(int id){

ItemFragment item = new ItemFragment();

Bundle bun = new Bundle();

switch (id) {

case R.id.one:

bun.putInt(ItemFragment.LAYOUT, R.layout.one);

break;

case R.id.two:

bun.putInt(ItemFragment.LAYOUT, R.layout.two);

break;

default :

return;

}

item.setArguments(bun);

getFragmentManager()

.beginTransaction()

.replace(R.id.content, item)

.commit();

/*getSupportFragmentManager()

.beginTransaction()

.replace(R.id.content, item)

.commit();*/

}

public static class ItemFragment extends Fragment {

static final String LAYOUT = "layout";

int layout = 0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

layout = getArguments().getInt(LAYOUT);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View v = null;

if(layout == 0){

v = new View(getActivity());

}else{

v = inflater.inflate(layout, container, false);

}

return v;

}

}

}

至于布局文件就很简单了:一个FrameLayout和一个RadioGroup放在LinearLayout中就ok了

而在代码中核心也就这么几句getFragmentManager()

.beginTransaction()

.replace(R.id.content, item)

.commit();

如果大家对于java swing/awt比较熟悉的话,那么一定知道CardLayout布局,FrameLayout和它是一样的。只能显示一个控件。在写java GUI的时候是放入JPanel,而在写android的时候就可以Fragment。

简单一句话,这样的菜单导航实际上就是在FragmentLayout容器中进行切换而已。不过对于SDK小于11的和大于等于11的代码只是小小不同。

722fb55478c4262aded925ac28a13b23.png,如果把android和HTML做相似比较的话,那么FrameLayout容器和iframe标签或者Frame布局是不是很像了。在网页中,让一个连接target到某个iframe或者frame中去,而在android中就是一个替换旧的那个。

如果在android中想将菜单放在自己想要的位置(可以是底部,顶部,两边)都可以。只要在xml布局文件中配置就行啦。如果想把菜单设计的漂亮一点,那就好好的对RadioButton美化下吧,多加点样式。

运行结果图:

8b00640fa3164f4ecb0c99333c7ba940.png

a54c210c08b9d731e9e4e8338e90e2b5.png

好了!!!!!!!!!!!

总结下:

不管学什么,我觉得学习新东西的时候,可以将它与自己已经掌握的只是进行类比,特别是设计思想,设计方式,显示型式等等。

另外,不要一味的追求某一种方式 或者 一味依赖别人显示的样式设计,而是要先自己思考,用自己已经学过的知识是否能实现一样的效果,这样才能真正掌握。

总之,能够实现一样的效果,一样的功能,且性能没有受到很大影响的情况下,这样的解决方法就是好方法。


http://chatgpt.dhexx.cn/article/WKDANygj.shtml

相关文章

java radiogroup_Android基础控件RadioGroup使用方法详解

本文为大家分享了Android基础控件RadioGroup的使用,供大家参考,具体内容如下 1.简单介绍 RadioGroup可以提供几个选项供用户选择,但只能选择其中的一个。其下面可以横着或者竖着挂几个RadioButton,也可以挂载其他控件(如TextView)…

android自定义radiogroup,Android自定义RadioGroup

最近做项目时需要用到RadioGroup,发现Android原生的RadioGroup太丑了,所以自己写了一个,效果如下所示: 其实就是由4个Button组成的LinearLayout,只是为了方便点击效果的切换所以封装了一下。代码如下: pack…

RadioGroup

实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用.RadioGroup是单选组合框,可以容纳多个RadioButton的容器.在没有RadioGroup的情况下,RadioButton可以全部都选中;当多个RadioButton被RadioGroup包含的情况下,…

Android入门之路 - RadioGroup、RadioButton、CheckBox(单复选框)使用进阶

本文只为初级的Android新手而写,多掌握一份简单实用的技能,快速get吧,有问题就留言 2022:蓦然回首,已入行多年,人生的第二个迷茫阶段 初级 - 使用方式RadioGroup RadioButtonCheckBoxDemo示例 CheckBox 自…

Android RadioGroup 单选按钮控件

Android RadioGroup 单选按钮控件 RadioGroup 为单项选择按钮组,其中可以包含多个 RadioButton,即单选按钮,它们共同为用户提供一种多选一的选择方式。在多个 RadioButton 被同一个 RadioGroup 包含的情况下,多个 RadioButton 之间…

RadioGroup控件使用

在只能进行单选的选择上面可以通过&#xff32;adioGroup控件来实现&#xff0c;例如性别选择以及考试的单项选择题。 xml布局如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…

RedHat9.0下载地址

RedHat下载&#xff1a;http://archive.download.redhat.com/pub/redhat/linux/9/en/iso/i386/ 转载于:https://www.cnblogs.com/XACOOL/p/5679613.html

下载redhat4.8的方法

一、背景 因为老软件需要安装&#xff0c;所以找个了老系统来安装。 二、上官网 https://www.redhat.com/zh/ 点开redhat最新版本&#xff0c;现在是8.0 下载 要求我登录账户&#xff0c;我就登录jhui163的 然后&#xff0c;看到7.0和更早期的超链接&#xff0c;点进去

vmware安装redhat 8

vmware安装redhat 8 1、下载镜像文件1.1 镜像文件 2、安装系统2.1、选择自定义安装2.2、兼容性选择2.3、选择镜像文件导入2.4、设置用户名密码2.5、选择虚拟机在磁盘上的位置2.6、选择处理器数量2.7、选择内存大小2.8、选择桥接或NAT2.9、选择SCSI控制器类型2.10、选择虚拟机磁…

RedHat 7.5 7.6下载磁力链分享

某度最近更新了一波&#xff0c;导致诸多屏蔽弹客户端应用直接显示直链下载的浏览器插件也失效&#xff0c;就连最强的下载神器也400、403报错 csdn的下载站里是有不少资源&#xff0c;但是苦于都要积分&#xff0c;出于服务大众、便利人民的心。 我终于找到了对应的下载磁力…

RedHat使用yum下载安装软件包

RedHat使用yum下载安装软件包 Red Hat Enterprise Linux Server&#xff08;RHEL&#xff09;的yum服务是收费的&#xff0c;如果没有付费&#xff0c;则无法使用yum安装软件包。通过删除RedHat自带的yum&#xff0c;安装CentOS版本的yum&#xff0c;并使用CentOS的yum源和epel…

RedHat红帽RHEL7.2镜像下载以及安装教程(内含下载链接)

RedHat红帽RHEL7.2镜像下载以及安装教程 镜像下载链接&#xff1a; https://pan.baidu.com/s/1czcz-ClYavcugE9PJDIIQg?pwdq2t1 提取码:q2t1 安装教程 1、打开VM&#xff0c;新建虚拟机 2、选择自定义&#xff0c;下一步 3、默认&#xff0c;下一步 4、选择稍后安装操作系统…

redhat官方文档下载方法

打开地址&#xff1a;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/ 如图下载pdf格式文件&#xff1a;

安装Redhat

1.新建虚拟机&#xff0c;选典型 2.下一步&#xff0c;选择稍后安装操作系统 3.下一步&#xff0c;选择Linux&#xff0c;版本选择Red Hat Enterprise 8&#xff08;版本是什么就选择什么&#xff09; 4.下一步&#xff0c;设置虚拟机名称以及位置 5.下一步&#xff0c;设…

红帽linux6.8镜像下载,redhat8镜像下载

https://developers.redhat.com/rhel8 点击下图的“Download RHEL” 点击完 “Download RHEL”后会跳转到登录界面&#xff0c;注册个账号登录即可&#xff0c;该文档将跳过注册步骤 截止该文档下载时&#xff0c;redhat8的版本为8.3 beat版本&#xff0c;点击“View Older Dow…

redhat下载gcc

redhat似乎受众很少&#xff0c;安装gcc很少有参照。 倒腾很久终于安装成功了&#xff0c;浅浅记录一下。 1、首先将创建一个gcc文件夹&#xff0c;将gcc挂载到/dev/sr0下 2、然后进入繁琐的安装过程。 &#xff08;大抵是需要这些包了&#xff0c;但是不同rhel可能版本号不同…

如何下载redhat enterprise版本

1.登录网站: developers.redhat.com 2.点开下面红框内的图标 3.再点下面红框内的图标 4. 继续点红框内的图标 5.点开以后是下面的页面&#xff0c;往下拖动就可以看见redhat enterprise 的很多版本了 备注&#xff1a;以上网站有时候下载一段时间就断开不能下载了。也可以从下…

Red Hat Enterprise Linux RHEL 8.6 下载安装

前言 由于 CentOS 长期以来没有为 Red Hat 增加价值&#xff0c;Red Hat 停止了 CentOS Linux 的维护&#xff0c;为了留住小规模 CentOS 用户&#xff0c;Red Hat 允许免费下载 RHEL&#xff0c;在 2021 年 1 月&#xff0c;红帽宣布个人可以获得免费的个人订阅&#xff0c;以…

red hat 系统下载

red hat linux 系统下载 在官方下载需要有账号&#xff0c;如果没有账号可到百度云下载&#xff08;百度云的速度你知道&#xff09; https://pan.baidu.com/s/1gRuUdTFqnKP9a4yy6y2rbg 官方下载地址&#xff1a;https://developers.redhat.com/products/rhel/download/ 1.…

Java算法与数据结构、设计模式、高并发视频教程免费下载

Java算法与数据结构、设计模式、高并发视频教程免费下载&#xff01; 链接&#xff1a;http://pan.baidu.com/s/1gfyobmF 密码&#xff1a;bef5 链接我就不放出来了&#xff0c;太容易失效。需要这套视频教的网页&#xff0c;可以扫描下方的微信二维码&#xff0c;关注“业余…