1、构建用户界面和使用控件Android 中的常见控件:一、文本控件1 TextViewTextView 类的定义如下,它属于 View 类的直接子类,主要功能是用于显示文本。java.lang.Objectandroid.view.Viewandroid.widget.TextView主要属性所有组件都会在 R.java 中自动生成public static final class id public static final int textView01=0x7f050000;在程序代码中,可以通过 setAutoLinkMask 方法进行 autoLink 行为的设置, 传递一个 int 类
2、型的值,如 Linkify.EMAIL_ADDRESS 或 Linkify.WEB_ADDRESS或者使用 Linkify 类的静态方法 addLinksLinkify.addLinks(tv,Linkify.ALL);设置背景颜色有三种方法:setBackgroundResource:通过颜色资源 ID 设置背景色。setBackgroundColor:通过颜色值设置背景色。setBackgroundDrawable:通过 Drawable 对象设置背景色。setBackgroundResource 方法设置背景:以下为引用内容: textView.setBackgroundResource
3、(R.color.background); setBackgroundColor 方法设置背景:以下为引用内容: textView.setBackgroundColor(android.graphics.Color.RED);setBackgroundDrawable 方法设置背景:以下为引用内容: Resources resources=getBaseContext().getResources();Drawable drawable=resources.getDrawable(R.color.background);textView.setBackgroundDrawable(drawab
4、le);等价于textView.setBackground(getResources().getDrawable(R.color.background)设置背景图片1、将背景图片放置在 drawable-mdpi 目录下,假设图片名为 jobs.jpg 。2、main.xml 文件以下为引用内容: 为 TextView 编写 style在 Android 中为了方便美工对组件进行修饰,也可以使用一些样式文件对组件显示进行控制,用户只需要按照如下的 xml 文件格式即可定义组件的显示格式,方法:res 的 values 目录,复制 strings.xml 文档进行修改即可30px#0000FFw
5、rap_contentwrap_contentall如果要引用样式表文件,2 EditText样式表20px#0000FFwrap_contentwrap_contentall20px#0000FFwrap_contentwrap_contentfill_parentwrap_content10ptdrawable/bg_borderandroid:hint可以提示文本,此文本将以较暗一些的颜色显示,并在用户开始键入内容时立即消失。提示的用途是让用户知道应在此字段中输入何种内容,无需用户选择或擦除文本。在代码中,可以通过调用setHint方法进行设置。二、按钮控件1. Button处理单击事件
6、:方法一:略方法二:为Button设置androi:onClick 属性,并在Activity文件中编写相应的方法,该方法必须有一个View 类型的参数main.xmlButtonClickActivity.javapublic void clickOne(View v)(TextView)v).setText(R.string.newtext);tv.setText(R.string.newtext);方法3:Activity本身作为事件监听器public class NowActivity extends Activity implements OnClickListener/* Call
7、ed when the activity is first created. */Button btn;TextView tv;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);btn=(Button)findViewById(R.id.time);tv=(TextView)findViewById(R.id.text);btn.setOnClickListener(this); public void
8、onClick(View view)updateTime();public void updateTime()tv.setText(new Date().toString();如果有多个按钮,判断是哪个按钮被按下class MyButtonOnClick implements OnClickListenerOverridepublic void onClick(View v) / TODO Auto-generated method stubif(v=myButton)tv.setText(R.string.click1);else tv.setText(R.string.click2);2.
9、 ImageButtonImageButton btn =(ImageButton)this.findViewById(R.id.imageBtn);btn.setImageResource(R.drawable.icon);按钮的图像文件必须位于 res/drawable文件夹下选择器将该文件放在res/drawable文件夹下,将按钮的android:src 属性设置为选择器xml文件android:src= “drawable /imagebuttonselector“3. ToggleButtonToggleButton是一种具有两种状态的按钮,此按钮可以处于On 状态,也可以处于Of
10、f状态,默认行为时在On状态下显示一个绿条,并将文本设置为 On,在Off状态下显示一个灰条。并将文本设置为Off. 也可以通过 textOn和textOff 属性修改ToggleButton的文本。4. CheckBoxjava.lang.Objectandroid.view.Viewandroid.widget.TextViewandroid.widget.Buttonandroid.widget.CompoundButtonandroid.widget.CheckBoxCheckBox 类本身没有找到合适的方法,此时可以到它的父类中去找,如 CompoundButton父类中去找常用方法
11、:1. public boolean isChecked()2. public void setChecked(boolean checked)3.public void setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener)4. public void toggle() /Change the checked state of the view to the inverse of its current statech1.setOnCheckedChangeListener(new OnCheck
12、edChangeListener()Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) / TODO Auto-generated method stubif(arg1)System.out.println(“swim“);); 5.RadioButtonRadioGroup 与 RadioButton 单选钮java.lang.Objectandroid.view.Viewandroid.view.ViewGroupandroid.widget.LinearLayoutandroid.widget.R
13、adioGroup在许多语言中,单选钮直接定义即可,但在Android 中,RadioGroup 定义的只是一个单选钮的容器,在这个容器中要加入多个单选项,而这个单选项就是RadioButtonjava.lang.Objectandroid.view.Viewandroid.widget.TextViewandroid.widget.Buttonandroid.widget.CompoundButtonandroid.widget.RadioButton常用方法:1. public void check(int id) /设置要选中的按钮编号2. public void clearCheck(
14、) /清空选中状态3. public int getCheckedRadioButtonId() /取得选中的RadioButton 的ID4. public void setOnCheckedChangedListener (RadioGroup.OnCheckedChangedListener listener)sexGroup.setOnCheckedChangeListener(new RadioGroup .OnCheckedChangeListener() Overridepublic void onCheckedChanged(RadioGroup arg0, int arg1) / TODO Auto-generated method stub);判断是哪一个按钮被 checkedpublic void onCheckedChanged(RadioGroup arg0, int arg1) / TODO Auto-generated method stubif(maleButton.getId()=arg1)System.out.println(“male“);else if(femaleButton.getId()=arg1)System.out.println(“female“);或者采用以下方式: