android单选按钮
篇一:黑马程序员安卓教程:Android对话框之多选话框
Android对话框之多选话框
我们已经讲述了单选对话框的编写,下面我们要学习的是:多选对话框的编写,具体步骤如下: 点击第三个按钮时,程序执行click03方法,具体实现如下:
创建一个对话框构造器,代码如例1-1:
例1-1
运行程序,效果如图1-1所示
图1-1所示
运行程序,默认显示程序中指定的选项,点击按钮时则弹出Toast提示信息。
篇二:android源码中的经典-一个Demo教你所有控件的使用
Android中有各种各样的控件,相信大家对一些常用的控件都不陌生。但是面对众多控件,新手们还是相当头疼的。今天就给大家共享一个android源码中的经典Demo,让你轻松掌握所有控件的使用。
篇三:android入门重点讲义(含有代码)
1、可以使某些资源文件或UI组件可重用
<includelayout="@layout/other"/> android:layout_x="20dip" android:layout_y="80dip"
android:layout_centerHorizontal控制该组件是否位于布局容器的水平居中位置 android:layout_centerVertical控制该组件是否位于布局容器的垂直居中位置 android:layout_centerInParent控制该组件是否位于布局容器的中央位置 android:layout_alignParentBottom控制该组件是否与布局容器底端对齐 android:layout_alignParentLeft控制该组件是否与布局容器左边对齐 android:layout_alignParentRight控制该组件是否与布局容器右边对齐 android:layout_alignParentTop控制该组件是否与布局容器顶端对齐 android:layout_toRightOf控制该组件位于给出的ID组件的右侧 android:layout_toLeftOf控制该组件位于给出的ID组件的左侧 android:layout_above控制该组件位于给出的ID组件的上方 android:layout_below控制该组件位于给出的ID组件的下方 android:layout_alignTop控制该组件与给出的ID组件的上边界对齐 android:layout_alignBottom控制该组件与给出的ID组件的下边界对齐 android:layout_alignLeft控制该组件与给出的ID组件的左边界对齐 android:layout_alignRight控制该组件与给出的ID组件的右边界对齐
android:shrinkColumns设置该列的所有单元格的宽度可以被收缩,以保证该表格能够android:stretchColumns设置该列的所有单元格的宽度可以被拉伸,以保证组件能完android:collapseColumns设置该列的所有单元格会被隐藏 设置字体为30pt android:textSize="30pt" 设置中间省略 测试密码框 绘制一张图片
android:singleLine="true"android:ellipsize="middle" android:password="true"
android:drawableLeft="@drawable/icon"
对邮件增加链接 android:autoLink="email"android:autoLink="email" 2、定义一个文本编辑框,使用绝对定位
3、控件位置
4、设置单元格内的控件的形状(可压缩,可伸长,可隐藏等) 适应父容器宽度 全填满表格空余空间 5、TextView属性设置
6、EditText属性设置
当前组件在得到焦点的时候,自动选取该组件内的所有的文本内容
android:selectAllOnFocus="true"
当前组件只能输入数字 android:phoneNumber="true" 当前组件显示的提示信息,被选中时,内容自动被清空
android:hint="@string/edtPhone android:background=""
<ImageButtonandroid:src=""/>
7、按钮以及属性(Button……)
普通文字按钮 普通图片按钮
按下时显示不同图片的按钮(利用配置文件解决即,button_selector.xml,android:src="@drawable/button_selector")
Button_selector.xml:指定按钮按钮下时的图片
<item android:state_pressed="true" />/>
指定按钮松开时的图片:
android:drawable="@drawable/red"
<item android:state_pressed="false"
android:drawable="@drawable/purple"
带文字的图片按钮android:background="@drawable/button_selector"
android:text="@string/btnImage"
8、单选按钮和多选按钮(RadioGroup、CheckBox)
定义一组单选框 <RadioGroupandroid:orientation="vertical"
android:layout_gravity="center_horizontal">
定义一个单选框 <RadioButtonandroid:text="@string/male"/> 定义一个垂直的线性布局
<LinearLayoutandroid:layout_gravity="center_horizontal" <CheckBoxandroid:text="@string/red" android:checked="true"/>……
定义三个复选框
9、带类似开关式的按钮(ToggleButton)
定义一个ToggleButton按钮: <ToggleButton
android:textOff="@string/layoutH" android:textOn="@string/layoutV"/>
TestActivity: ToggleButtontb = (ToggleButton) findViewById(R.id.toggle);
layout = (LinearLayout) findViewById(R.id.test);
定义一个可以动态改变方向的线性布局:
匿名内部类:
tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton arg0, booleanarg1) { if (arg1) {
layout.setOrientation(LinearLayout.HORIZONTAL); } else {
layout.setOrientation(LinearLayout.VERTICAL); }}});
9、计时器组件(Chronometer)
获取计时器组件:
final Chronometer chro = (Chronometer) findViewById(R.id.test);
改变显示的信息内容,使用"%s"表示计时信息
chro.setFormat("计时信息:%s");
Button btnStart = (Button) findViewById(R.id.start); 获取事件监听:
btnStart.setOnClickListener(newOnClickListener() { publicvoidonClick(View arg0) { 设置开始计时时间:
SystemClock系统时钟类,
elapsedRealtime方法是得到当前系统的真实时间 hro.setBase(SystemClock.elapsedRealtime()); chro.start(); } });
获取“开始”按钮
启动计时器:
时钟改变一次监听一次:
chro.setOnChronometerTickListener(new OnChronometerTickListener() {
publicvoidonChronometerTick(Chronometer ch) { 如果从开始计时到现在超过了20s。(15 - 11 > 20 * 1000)
Log.i("TestActivity", SystemClock.elapsedRealtime() + "");
if (SystemClock.elapsedRealtime() - ch.getBase() > 20 * 1000) { ch.stop(); } } });
定义模拟时钟:<AnalogClock……/>
定义数字时钟:<DigitalClock……android:textSize="14pt"/> 计时器:<Chronometerandroid:id="@+id/test"……
android:textSize="12pt" …… android:textColor="#ffff0000"/>
android:src="@drawable/icon"
10、图像视图(ImageView)
<ImageView
android:layout_marginLeft="10dp" android:layout_marginTop="100dp"
距离左边10dp
距离上面100dp/>
11、自动完成文本框(AutoCompleteTextView)
指定输入一个字符后进行提示:<AutoCompleteTextView />
设置出现在下拉菜单中的提示标题:android:completionHint="@string/title" 设置下拉菜单的宽度:
android:dropDownWidth="100dp"
设置下拉菜单与文本框之间的水平偏移:android:dropDownHorizontalOffset="30dp" 设置用户至少输入几个字符才会显示提示:android:completionThreshold="2" 具体实现(Activity):
1、定义字符串数组,作为提示的文本
String[] books = new String[] { "active", "activity", "activity", "apple","apple" };
2、获取CompleteTextView上下文对象:
AutoCompleteTextViewactv = (AutoCompleteTextView) findViewById(R.id.auto);
3、创建一个ArrayAdapter,封装数据
ArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, books); simple_dropdown_item_1line:android自带的配置文件。
4、设置Adapter
actv.setAdapter(adapter);
定义了一个Spinner组件,指定该显示该Spinner组件的数组:
<Spinner……/>
android:entries="@array/books"
books.xml:<string-arrayname="books"> <item>Java SE</item>
<item>Java EE</item> <item>Java ME</item> <item>Linux</item> </string-array>
使用数组资源设置该下拉列表框的列表项目:
12、下拉列表框(Spinner)
设置该列表选择框的提示
android:prompt="@string/info"
…… ……
/> />
13、时间和日期组件(DatePicker、TimePicker)
定义一个DatePicker组件(日期:年,月,日):<DatePicker 定义一个TimePicker组件(时间:含上下午 ):<TimePicker Activity:
引用布局文件中的组件:findViewById();
获取当前的年、月、日、小时、分钟:Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR); month= c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); hour = c.get(Calendar.HOUR); minute = c.get(Calendar.MINUTE);
privatevoidshowDate(int year, int month, int day, int hour, int minute) { EditText show = (EditText) findViewById(R.id.show);
show.setText("您的购买日期为:" + year + "年" + month + "月" + day + "日 " + hour
+ "时" + minute + "分");}
用于显示时间的方法(show):
初始化DatePicker组件,初始化时指定监听器:
datePicker.init(year, month, day, newOnDateChangedListener() {
publicvoidonDateChanged(DatePicker arg0, int year, int month,int day) {
TestActivity.this.year = year;
TestActivity.this.month = month; TestActivity.this.day = day; // 显示当前日期、时间
showDate(year, month, day, hour, minute);}});
为TimePicker指定监听器:
timePicker.setOnTimeChangedListener(newOnTimeChangedListener() { publicvoidonTimeChanged(TimePicker arg0, int hour, int minute) {
TestActivity.this.hour = hour; TestActivity.this.minute = minute; // 显示当前日期、时间
showDate(year, month, day, hour, minute); }});
14、水平进度条(ProgressBar)
定义一个水平进度条
<ProgressBarandroid:id="@+id/bar"…… android:max="100"android:progress="30"
style="@android:style/Widget.ProgressBar.Horizontal" />
Widget.ProgressBar.Horizontal:系统自带布局方式。
15、拖动条(SeekBar)
定义一个拖动条,并改变它的滑块外观:
<SeekBar
android:id="@+id/seekbar" ……
android:max="255" android:progress="120"
android:thumb="@drawable/marker"(更改滑块外观)/>
Activity:
1、 findViewById 2、 事件监听器:
seekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener() { // 当拖动条的滑块位置发生改变时触发该方法
publicvoidonProgressChanged(SeekBar arg0, int progress,booleanfromUser) {image.setAlpha(progress); }// 设置透明度
publicvoidonStartTrackingTouch(SeekBar bar) {} publicvoidonStopTrackingTouch(SeekBar bar) {}});
16、星级评分条(RatingBar)
定义一个星级评分条:
<RatingBarandroid:id="@+id/rating" …… android:numStars="5"//星的数量
android:max="50"//总长度
android:progress="10"//单位长度 android:stepSize=".5"//允许最小尺寸/>
17、选项卡(TabHost)
定义一个TabHost 添加几个布局:
<TabHost……> …… </TabHost>
<LinearLayoutandroid:id="@+id/tb1"android:orientation="vertical"> <LinearLayoutandroid:id="@+id/tb2"android:orientation="vertical"> <LinearLayoutandroid:id="@+id/tb3"android:orientation="vertical">
Activity:
1、 TabHostth = getTabHost();//获取选项卡
2、 LayoutInflater.from(this).inflate(R.layout.main,
th.getTabContentView(),true)//获取布局文件
3、 在选项卡中添加已有的布局: