Android学习05-----Android中的基本控件(上)
java.lang.Object ? android.view.View ? android.widget.TextView
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textViewId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#FFFF00" android:textSize="20px" android:layout_margin="30px" android:text="@string/hello" /><!-- 注意这里的文字大小必须有大小单位 --><!-- 这里margin和Css一致 --><TextView android:id="@+id/textViewId2" android:layout_width="wrap_content" android:layout_height="wrap_content"android:background="@drawable/james"android:textColor="#000000"android:textStyle="bold" android:text="图片背景文字内容" /><!-- 注意这里的资源名称必须为[a-z0-9_.] --><TextView android:id="@+id/textViewId3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="all"android:textColor="#FFFF00"android:textSize="25px" android:text="博客地址:www.xdwangiflytek.iteye.com" /><!-- android:autoLink="all"如果是网址信息,可以将其变为链接 --><!-- 注意这里需要是英文冒号 --><!-- 通过上面的Demo我们可以发现如果一个项目中定义了多个文本组件,那么这可能会存在着许多重复的配置属性,这样的话对于开发维护就很麻烦,所以在Android操作系统中也可以使用样式表文件进行统一的属性配置,样式表定义与values中的string.xml一致,且文件必须在valuse文件夹之中 --> <TextView android:id="@+id/textViewId4" style="@style/msg_style" android:text="@string/hello" /><!-- style定义组件显示的样式风格 --></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><resources> <!-- 定义样式表的配置,其中 “msg_style”为名称--><style name="msg_style"> <item name="android:textSize">25px</item> <item name="android:textColor">#FFFF00</item> <item name="android:autoLink">all</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item></style></resources>
java.lang.Object ? android.view.View ? android.widget.TextView ? android.widget.Button
通过API发现Button是TextView的子类,所有按钮可以理解为一个特殊的文本显示组件,而按钮主要是完成某些事件功能的,这里主要先总结一下按钮的基本配置。
res/layout/button.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/buttonId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#FFFF00" android:textSize="14px" android:layout_margin="30px" android:text="@string/user"/></LinearLayout>
?
?
java.lang.Object ? android.view.View ? android.widget.TextView ? android.widget.EditText
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/editId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/user" android:selectAllOnFocus="true"/><!-- android:selectAllOnFocus被默认全选 --><EditText android:id="@+id/editId2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/user" android:enabled="false"/> <!-- 不可编辑 --> <EditText android:id="@+id/editId3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/user" android:password="true"/> <!-- 采用密码形式进行数据回显,此时是密文 --> <EditText android:id="@+id/editId3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numeric="integer"/> <!-- 数字输入 --></LinearLayout>
java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.LinearLayout ? android.widget.RadioGroup
java.lang.Object ? android.view.View ? android.widget.TextView ? android.widget.Button ? android.widget.CompoundButton ? android.widget.RadioButton
?
res/layout/ radiogroup.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/txId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20px" android:text="请选择语言:" /> <RadioGroup android:id="@+id/rgId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:checkedButton="@+id/rbCNId"> <!--vertical:垂直 android:checkedButton表示默认选中的单选 --> <RadioButton android:id="@+id/rbCNId" android:text="中文"/> <RadioButton android:id="@+id/rbENId" android:text="英文"/> </RadioGroup> <TextView android:id="@+id/txId2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20px" android:text="性别:" /> <RadioGroup android:id="@+id/rgId2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:checkedButton="@+id/rbManId"> <RadioButton android:id="@+id/rbManId" android:text="男"/> <RadioButton android:id="@+id/rbWomanId" android:text="女"/> </RadioGroup></LinearLayout>
?
java.lang.Object ? android.view.View ? android.widget.TextView ? android.widget.Button ? android.widget.CompoundButton ? android.widget.CheckBox
res/layout/ checkbox.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="爱好:" /> <CheckBox android:id="@+id/cbId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="上网"/> <CheckBox android:id="@+id/cbId2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="看书"/> <CheckBox android:id="@+id/cbId3" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
Activity
package com.iflytek.ViewDemo;import android.app.Activity;import android.os.Bundle;import android.widget.CheckBox;public class ViewProjectActivity extends Activity {private CheckBox checkBox;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.checkbox);this.checkBox=(CheckBox)super.findViewById(R.id.cbId3);this.checkBox.setChecked(true);this.checkBox.setText("唱歌");}}?
?
java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends android.widget.Adapter> ? android.widget.AbsSpinner ? android.widget.Spinner
Spinner类常用方法
<?xml version="1.0" encoding="utf-8"?><resources><string-array name="city_data"> <item>安徽</item> <item>江苏</item> <item>北京</item></string-array></resources>
res/layout/ spinner.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请选择喜欢的城市" /> <Spinner android:id="@+id/spinnerId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/city_prompt" android:entries="@array/city_data"/> <!-- android:entries配置所有下拉列表框中的显示内容 --> <!-- android:prompt提示信息 --> </LinearLayout>
法二,通过android.widget.ArrayAdapter类:
A、配置文件读取方式:
通过ArrayAdapter类中进行读取res/layout/ spinner.xml配置文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请选择喜欢的城市" /> <Spinner android:id="@+id/spinnerId2" android:layout_width="fill_parent" android:layout_height="wrap_content"/></LinearLayout>
Activity:
package com.iflytek.ViewDemo;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;public class ViewProjectActivity extends Activity {private Spinner spinner;private ArrayAdapter<CharSequence> arrayAdapter = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.spinner);this.spinner = (Spinner) super.findViewById(R.id.spinnerId2);this.spinner.setPrompt("请选择您喜欢的城市");this.arrayAdapter = ArrayAdapter.createFromResource(this,R.array.city_data, android.R.layout.simple_spinner_item);this.arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 换下拉框风格this.spinner.setAdapter(arrayAdapter);// 设置显示信息}}B、指定具体设置的数据方式:
此时不需要任何的资源文件,都是通过程序代码生成的列表内容
res/layout/ spinner.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请选择喜欢的城市" /> <Spinner android:id="@+id/spinnerId3" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
Activity
package com.iflytek.ViewDemo;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;public class ViewProjectActivity extends Activity {private Spinner spinner;private ArrayAdapter<CharSequence> arrayAdapter = null;private List<CharSequence> datas = null;//定义一个集合数据@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//通过ArrayAdapter读取配置文件的方式setContentView(R.layout.spinner);this.datas = new ArrayList<CharSequence>();this.datas.add("北京");this.datas.add("安徽");this.datas.add("江苏");this.spinner = (Spinner) super.findViewById(R.id.spinnerId3);this.arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item,this.datas);this.arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 换下拉框风格this.spinner.setAdapter(arrayAdapter);// 设置显示信息}}?
?
?
java.lang.Object ? android.view.View ? android.widget.ImageView
res/layout/ imageview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageViewId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/james"/> <!-- 需要注意的是ImageView中的所有图片需要保存在drawable文件夹之中 --> </LinearLayout>
?
?
java.lang.Object ? android.view.View ? android.widget.ImageView ? android.widget.ImageButton
res/layout/ imagebutton.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageButton android:id="@+id/imagebtnId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/></LinearLayout>
?
java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.TimePicker
res/layout/ timepicker.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TimePicker android:id="@+id/tpId" android:layout_width="fill_parent" android:layout_height="wrap_content"/></LinearLayout>
java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.DatePicker
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <DatePicker android:id="@+id/dpId" android:layout_width="fill_parent" android:layout_height="wrap_content"/></LinearLayout>
?
?
?
?
?
?
