android开发之单选按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发之单选按钮相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ebebeb" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:id="@+id/title" android:layout_width="match_parent" android:layout_height="48dp" android:background="#2b3134" > <ImageButton android:id="@+id/infor_back" android:layout_width="40dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:background="@color/transparent" android:paddingBottom="5dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="5dp" android:scaleType="centerInside" android:src="@drawable/ac0" /> <View android:id="@+id/view_temp" android:layout_width="1dp" android:layout_height="match_parent" android:layout_marginBottom="8dp" android:layout_marginTop="8dp" android:layout_toRightOf="@id/infor_back" android:background="#14191A" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/view_temp" android:text="违法停车告知单信息" android:textColor="#ffffff" android:textSize="18sp" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="48dp" android:layout_marginTop="5dp" android:background="#ffffff" android:clickable="true" > <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" android:gravity="center" android:paddingLeft="5dp" android:text="车牌号:" android:textColor="#000000" android:textSize="18sp" /> <TextView android:id="@+id/plate_number" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_gravity="center_vertical" android:layout_marginRight="20dp" android:gravity="center_vertical" android:paddingLeft="10dp" android:text="5555555" android:textColor="#000000" android:textSize="18sp" /> <View android:layout_width="match_parent" android:layout_height="0.1dp" android:layout_alignParentBottom="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:background="#dadada" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="48dp" android:background="#ffffff" > <TextView android:id="@+id/car_cl" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" android:gravity="center" android:paddingLeft="5dp" android:text="车身颜色:" android:textColor="#000000" android:textSize="18sp" /> <EditText android:id="@+id/car_color" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_gravity="center_vertical" android:layout_marginRight="20dp" android:layout_toRightOf="@id/car_cl" android:cursorVisible="true" android:gravity="center_vertical" android:hint="请输入车身颜色" android:paddingLeft="10dp" android:singleLine="true" android:textColor="#000000" android:textSize="18sp" /> <View android:layout_width="match_parent" android:layout_height="0.1dp" android:layout_alignParentBottom="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:background="#dadada" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="192dp" android:background="#ffffff" android:clickable="true" > <TextView android:id="@+id/car_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" android:gravity="center_horizontal" android:paddingLeft="5dp" android:paddingTop="15dp" android:text="车辆类型:" android:textColor="#000000" android:textSize="18sp" /> <com.example.view.FlowRadioGroup android:id="@+id/cartype_radio_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_toRightOf="@id/car_type" > <RadioButton android:id="@+id/big_carriage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="大型客车" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/middle_carriage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0dp" android:text="中型客车" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/small_carriage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小型客车" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/big_car" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="大型货车" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/small_car" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小型货车" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/motor_cycle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="摩托车 " android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/cartype_else" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="其他" android:textColor="#000000" android:textSize="14sp" /> </com.example.view.FlowRadioGroup> <View android:layout_width="match_parent" android:layout_height="0.1dp" android:layout_alignParentBottom="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:background="#dadada" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="94dp" android:background="#ffffff" android:clickable="true" > <TextView android:id="@+id/plate_number_cl" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" android:gravity="center_horizontal" android:paddingLeft="5dp" android:paddingTop="15dp" android:text="号牌颜色:" android:textColor="#000000" android:textSize="18sp" /> <com.example.view.FlowRadioGroup android:id="@+id/plate_number_group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_toRightOf="@id/plate_number_cl" > <RadioButton android:id="@+id/yellow_numb" android:layout_width="33dp" android:layout_height="24dp" android:text="黄色" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/blue_numb" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="蓝色" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/black_numb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="黑色" android:textColor="#000000" android:textSize="14sp" /> <RadioButton android:id="@+id/color_else" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="其他" android:textColor="#000000" android:textSize="14sp" /> </com.example.view.FlowRadioGroup> <View android:layout_width="match_parent" android:layout_height="0.1dp" android:layout_alignParentBottom="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:background="#dadada" /> </RelativeLayout> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dip" android:layout_alignParentBottom="true" android:background="#2b3134" > <LinearLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:id="@+id/information_change" android:layout_width="0dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_weight="1" android:background="@android:color/transparent" android:gravity="center" android:text="修改" android:textColor="@android:color/white" android:textSize="20dp" /> <View android:id="@+id/infor_view_temp" android:layout_width="4dp" android:layout_height="match_parent" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:layout_toRightOf="@id/information_change" android:background="#14191A" /> <Button android:id="@+id/information_sure" android:layout_width="0dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_weight="1" android:background="@android:color/transparent" android:gravity="center" android:text="确定" android:textColor="@android:color/white" android:textSize="20dp" /> </LinearLayout> </RelativeLayout> </RelativeLayout>
package com.example.view; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.RadioGroup; public class FlowRadioGroup extends RadioGroup { public FlowRadioGroup(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int maxWidth = MeasureSpec.getSize(widthMeasureSpec); int childCount = getChildCount(); int x = 0; int y = 0; int row = 0; for (int index = 0; index < childCount; index++) { final View child = getChildAt(index); if (child.getVisibility() != View.GONE) { child.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); // 此处增加onlayout中的换行判断,用于计算所需的高度 int width = child.getMeasuredWidth(); int height = child.getMeasuredHeight(); x += width; y = row * height + height; if (x > maxWidth) { x = width; row++; y = row * height + height; } } } // 设置容器所需的宽度和高度 setMeasuredDimension(maxWidth, y); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { final int childCount = getChildCount(); int maxWidth = r - l; int x = 0; int y = 0; int row = 0; for (int i = 0; i < childCount; i++) { final View child = this.getChildAt(i); if (child.getVisibility() != View.GONE) { int width = child.getMeasuredWidth(); int height = child.getMeasuredHeight(); x += width; y = row * height + height; if (x > maxWidth) { x = width; row++; y = row * height + height; } child.layout(x - width, y - height, x, y); } } } }
// 注册单选按钮的监听事件 cartype_radio_group.setOnCheckedChangeListener(listener1); plate_number_group.setOnCheckedChangeListener(listener2); car_color = (EditText) findViewById(R.id.car_color); back = (ImageButton) findViewById(R.id.infor_back); } private RadioGroup.OnCheckedChangeListener listener1 = new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == big_carriage.getId()) { cartype = big_carriage.getText().toString(); } else if (checkedId == middle_carriage.getId()) { cartype = middle_carriage.getText().toString(); } else if (checkedId == small_carriage.getId()) { cartype = small_carriage.getText().toString(); } else if (checkedId == big_car.getId()) { cartype = big_car.getText().toString(); } else if (checkedId == small_car.getId()) { cartype = small_car.getText().toString(); } else if (checkedId == motor_cycle.getId()) { cartype = motor_cycle.getText().toString(); } else { cartype = color_else.getText().toString(); } } }; private RadioGroup.OnCheckedChangeListener listener2 = new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == yellow_numb.getId()) { color_car = yellow_numb.getText().toString(); } else if (checkedId == blue_numb.getId()) { color_car = blue_numb.getText().toString(); } else if (checkedId == black_numb.getId()) { color_car = black_numb.getText().toString(); } else { color_car = yellow_numb.getText().toString(); } } };
以上是关于android开发之单选按钮的主要内容,如果未能解决你的问题,请参考以下文章
Android初级教程小案例之单选框RadioGroup与复选框CheckBox
Adobe Air for Android 上的单选按钮和单选按钮组?