图形界面的按钮是最普通的控件,Android响应按钮的程序结构大体分成如下两种:

(1)采样匿名内部类的按钮实现方式:

如下面的Java程序,在声明Class时只是从Activity派生,并没有实现任何接口。因此为了实现按钮事件的响应,就必须在下面的方法中用匿名内部类的方式实现,比如

//退出按钮;
bt_exit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
finish();
}
});
在这段程序中,new View.OnClickListener() 就是匿名的的内部类,而

public void onClick(View v) {
// Perform action on click
finish();
}
就是这个内部类onClick方法的实现。

上述完整的程序结构如下:

public class a15act extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

setTitle("调光手电筒 2010-3-20");

//建立主发光区TextView的对象;
final TextView tv_light=(TextView) findViewById(R.id.tv_light);


//建立三个Button的对象;
Button bt_low=(Button) findViewById(R.id.bt_low);
Button bt_high=(Button) findViewById(R.id.bt_high);
Button bt_exit=(Button) findViewById(R.id.bt_exit);

//退出按钮;
bt_exit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
finish();
}
});
//低亮度按钮;
bt_low.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click

tv_light.setBackgroundColor(Color.GRAY);

}
});

//高亮度按钮;
bt_high.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
tv_light.setBackgroundColor(Color.WHITE);

}
});

}
}

(2)用Activity直接实现OnClickListener接口的方式:

与上面的程序结构不同,在声明Class时可以直接实现OnClickListener,然后在Class内部就可以用同一个onClick方法实现所有按钮的响应,按钮区分可采用swith--case的语句结构实现。

例如:public class mmact extends Activity implements OnClickListener, 在class声明时不仅从Activity派生,而且还实现OnClickListener 接口。在class中用语句实现接口OnClickListener 的onClick方法,即 public void onClick(View aView)。对于很多按钮事件,可以用switch--case实现,例如

switch (aView.getId()) {

case R.id.button1:

setTitle("Start the App");

EditText edt = (EditText) findViewById(R.id.edittext_name);

TextView tv = (TextView) findViewById(R.id.textview_display);

tv.setText("Hello," + edt.getText());

//android:text="YES" ;

break;

case R.id.button2:

finish();

break;

}

下面是个比较完整的程序结构:

public class mmact extends Activity implements OnClickListener {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//从资源文件中获取按钮对象的引用

Button sButton1 = (Button)findViewById(R.id.button1);

Button sButton2 = (Button)findViewById(R.id.button2);

//注册点击事件监听者

sButton1.setOnClickListener(this);

sButton2.setOnClickListener(this);

}

public void onClick(View aView) {

switch (aView.getId()) {

case R.id.button1:

setTitle("Start the App");

EditText edt = (EditText) findViewById(R.id.edittext_name);

TextView tv = (TextView) findViewById(R.id.textview_display);

tv.setText("Hello," + edt.getText());

//android:text="YES" ;

break;

case R.id.button2:

finish();

break;

}

}

}

更多相关文章

  1. Android(安卓)Toast使用简介
  2. 【译】在JitPack发布自己的Android库
  3. Android应用程序启动过程——Launcher源码分析
  4. Android系统上实现应用程序的静默安装
  5. android adb push 与 adb install 区别(两种安装APK的方法)
  6. Android(安卓)打包成APK
  7. 深入探讨 Android(安卓)传感器随处监控您的环境
  8. Adb移植(一)简单分析
  9. 开发Android下纯C程序时,打开时提示not found

随机推荐

  1. 这才是你需要的C语言、C++学习路线!
  2. 数学相关函数在PHP中的应用简介
  3. 简单计算器
  4. PHP字符运算、类型转换和系统函数
  5. 简单计算器
  6. 为什么我们要面向接口编程?!
  7. html常用标签
  8. 第一节课作业
  9. 数组的方法
  10. Linux常用命令大全