
为了满足动态显示的需要,写死在布局文件里的控件显然是不行的。因此我们用代码取代布局,如图所示。这样就可以动态的控制控件的样式。

下面这行就是获取代表控件的对象:
| 1 | TextView textView = (TextView)findViewById(R.id.textView) |

每一种控件都对应有一个类,View是所有控件的父类。.在Activity中获取代表View的对象首先,我们需要在layout文件里给控件加上一个唯一的ID:android:id="@+id/textView"
然后,在Activity里声明这个控件:private TextView textView;注:这里需要引用textView所在的包import android.widget.TextView;在Activity的函数里用findViewById获取这个View,由于findViewById函数的返回类型是View,所以需要向下转型为TextView:注:这里不是生成对象,只是找到这个对象,对象的生成是由布局文件完成的。textView = (TextView)findViewById(R.id.textView);设置View的属性转型完毕以后可以在Activity中对这个控件进行修改,控制它的属性。例如:textView.setText(“hello world”);textView.setBackgroundColor(Color.BLUE);在布局里能做到的事情绝大部分代码里也能做到。为View设置监听器,监听器也是一种对象,它监控着控件对象状态的变化。当控件遇到了某种事件,被点击了,被滑动了等等,控件会通知监听器,监听器得到通知之后就执行一些操作。控件与监听器之间是绑定关系。一个控件可以绑定多个监听器,不同的监听器用来响应不同的事件。比如监听器一用来响应点击事件,监听器二用来响应长点击事件……

我们以做一个计数器的应用为例,设计一个按键和一个文本框,每点击一下按钮,文本框里的数字加1。用这个例子来说明使用监听器的步骤:1)获取代表控件的对象首先,我们在布局文件里加一个Button和TextView,TextView初始值0。
我们以做一个计数器的应用为例,设计一个按键和一个文本框,每点击一下按钮,文本框里的数字加1。用这个例子来说明使用监听器的步骤:
1)获取代表控件的对象首先,我们在布局文件里加一个Button和TextView,TextView初始0。01<TextView02android:id="@+id/textView"03 android:layout_width="wrap_content"04android:layout_height="wrap_content"05 android:textSize="40sp"06android:background="#FF0000"07android:text="0" />08<Button09 android:id="@+id/button"10android:layout_width="wrap_content"11android:layout_height="wrap_content"12android:text="Click Me"13 />再到Activity里引入包,声明它1private Button button;并获取它1button = (Button)findViewById(R.id.button);
2)定义一个类,实现监听器接口我们在activity里定义一个监听器,要使用一个内部类,并实现监听器接口OnClickListener1class ButtonListener implements OnClickListener{2 3}要注意的是,在导入包(CTRL+SHIFT+O)的时候,会弹出一个对话框让你选择引入哪个包,我们选择View.OnClickListener。

Finish之后,我们要实现OnClickListener这个接口的抽象方法,在前面打叉的灯泡上点击会弹出你需要的操作:直接点击Add unimplemented methods,Eclipse帮你完成抽象方法的复制,这个抽象方法就是onClick:1@Override2public void onClick(View v) {3// TODO Auto-generated method stub这个方法的作用是,当我们把ButtonListener监听器绑定到Button控件上后,当Button被点击时,会执行这个onClick方法。声明一个全局变量1int count=0;接着我们完成onClick函数1@Override2public void onClick(View v) {3count++;4textView.setText(count+"");5}至此,我们的监听器就写好了。3)生成监听器对象在onCreate函数里生成监听器对象:1ButtonListener buttonListener = new ButtonListener();4)为控件绑定监听器对象然后绑定到button上1button.setOnClickListener(buttonListener);完成。在Android里监听器种类非常多,而且不同控件监听的方法也不一样,但使用监听器的流程永远是这个流程。

