Android中的布局和控件

Android中的各种布局和控件


一、五大布局:

①RelativeLayout(相对布局)

②LinearLayout(线性布局)

③FrameLayout(帧布局/框架布局)

④TableLayout(表格布局)

⑤AbsoluteLayout(相对布局)

第五个现在基本已经被淘汰了,这里就不多说,前四种布局也比较熟悉我也不啰嗦了,我只说说我用这些布局碰到的问题,在重点中提到的属性都是特有属性,公用属性挺多的,常用的也不多,自己多试试或者百度就可以了。


重点:

①相对布局中:


below=”@id/a”、above=”@id/a”表示位于a控件之下或之上

toLeftOf=”@id/a”、toRightOf=”@id/a”表示位于a控件的左边或右边

注意上下与左右的区别

alignParentRight=”true” 表示和父容器的右边对齐。父容器的理解:假设布局A里有布局B,且布局B是相对布局,布局B即为布局B中组件的父容器。


②线性布局中:

没有啥可说的。。。。。。


③帧布局/框架布局:

只有一点值得注意的:它和TabHost一起实现切换卡的功能,改天我会把切换卡放到我的博客里的


④表格布局:

注意< TabRow >的使用


二、控件:

刚才才发现个问题:控件和组件,嘿嘿……不告诉你们……


依旧只是说一些特别的控件,像普通的控件Button、ImageView、EditText等等,这些就没必要说了。

有意思的是EditText作为输入框,比如说:
①EditText里面的提示字(一点对话框就消失,比如登陆界面中的密码输入框上写着“请输入密码”),在控件中加入“ android:hint=”请输入密码” “;
②还有输入框有时候会显示光标,也很简单,< EditText ….> < requestFocus /> < /EditText >;
③还有效果如下图:

这里写图片描述

方框里的图片,在控件中加入属性” android:drawableLeft=”……”

其他控件:

①CheckBox和RadioButton:

把这两个一起说,有相同之处

RadioButton:

xml文件:

<RadioGroup
        android:id="@+id/rg"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <RadioButton 
            android:id="@+id/ra1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="JAVA"
            android:textColor="#000000"
            />
        <RadioButton 
            android:id="@+id/ra2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Android"
            android:textColor="#000000"
            />
    </RadioGroup>

注意RadioGroup哦

java文件(省略了部分代码):

RadioGroup rg;
RadioButton ra1, ra2;
rg = (RadioGroup) findViewById(R.id.rg);
ra1 = (RadioButton) findViewById(R.id.ra1);
ra2 = (RadioButton) findViewById(R.id.ra2);
rg.setOnCheckedChangeListener(occl);
//只需要给RadioGroup绑定监听,注意监听类型
private OnCheckedChangeListener occl = new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup arg0, int arg1) {
            if (ra1.isChecked()) {
                //ra1选中后执行
            } else if (ra2.isChecked()) {
                //ra2选中后执行
            }
        }
    };

CheckBox:

xml文件:

<CheckBox
        android:id="@+id/cb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="篮球"
        android:textColor="#000000" />

<CheckBox
        android:id="@+id/cb2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/cb1"
        android:layout_below="@id/cb1"
        android:layout_marginTop="32dp"
        android:text="足球"
        android:textColor="#000000" />

Java文件:

CheckBox cb1,cb2;
cb1=(CheckBox)findViewById(R.id.cb1);
cb2=(CheckBox) findViewById(R.id.cb2);
cb1.setOnCheckedChangeListener(occl);
//给每个CheckBox绑定监听器,注意监听类型
cb2.setOnCheckedChangeListener(occl);
private OnCheckedChangeListener occl=new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
                  if(cb1.isChecked()==true){ /*表示第一项被选中*/}
                  if(cb2.isChecked()==true){ /*表示第二项被选中*/}
               findViewById(R.id.bt1).setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                   // 附加点击按钮监听              
                }
            });         
        }
    };

RadioButton和CheckBox总结:首先是监听方式的改变,以前习惯于用简单的方法(.setOnClickListener(new OnClickLisener(){…}))一步到位,但是当这个监听方法被多次使用的时候,再用这种反而有点繁琐,这个时候上述方法就比较实用了,当然也可以用写方法来代替。当然还要对各种各样的监听方法需要去熟悉。另外CheckBox使用起来还有点缺陷:不好获得输入的数据,总觉得给每个CheckBox都绑定一个那么复杂的监听很麻烦。想个方法去解决,待定~~~

一般多选是用在提交用户信息上使用,所以肯定需要点一个按钮来提交,直接给按钮绑定一个点击事件,点击后判断有哪几个选项被选中。这是最简单的方法。


有点困了,先睡一觉。。。。
。。。。。。有兴趣的可以下载一下我的word。

http://download.csdn.net/detail/zhengyikuangge/9319149

class="preview-iframe" scrolling="no" src="http://download.csdn.net/source/preview/9319149/d4865a0aee96e0f0783e39fcbb3ad945" width="738" height="523">
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值