1)第一种,也是最长见的添加方法(一下都以Button为例)

Button btn = (Button) findViewById(R.id.myButton);
btn .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//do something
}
});

2)第二种,下面这个方法较前一种稍微简单了一些,允许多个Buttons共享一个Listener。通过Switch控制对不同Button Click事件的响应方法:

Button btn = (Button) findViewById(R.id.mybutton);
Button btn2 = (Button) findViewById(R.id.mybutton2);
btn.setOnClickListener(handler);
btn2.setOnClickListener(handler);
View.OnClickListener handler = View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.mybutton:
//do something
break;
case R.id.mybutton2:
//do something
break;
}
}

或者

    Button list=null;
Button about=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
list=(Button)findViewById(R.id.foodlistbtn);
about=(Button)findViewById(R.id.aboutbutton);
// list.setText(text);
// list.setCompoundDrawables(left, top, right, bottom);
list.setOnClickListener(this);
about.setOnClickListener(this); }
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId()==R.id.foodlistbtn){
Intent intent=new Intent();
intent.setClass(MainApp.this, FoodListView.class);
startActivity(intent);
list.setBackgroundResource(R.drawable.btn_food_list_active);
}else if(v.getId()==R.id.aboutbutton){
Intent intent=new Intent(this, About.class);
startActivity(intent);
about.setBackgroundResource(R.drawable.btn_food_about_active);
}
}

3)第三种,直接将Clicklistener捆绑XML layout中的Views元素,在程序中定义的Listener方法需要带有一个View类型的参数:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/text"
android:text="@string/hello" />
<Button android:id="@+id/mybutton" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:onClick="mybuttonlistener"></Button>
</LinearLayout>

java代码:

 Button btn = (Button) findViewById(R.id.mybutton);

 public void mybuttonlistener(View target){
//do something
}

从零开始学android开发-View的setOnClickListener的添加方法的更多相关文章

  1. 从零开始学android开发-详细谈谈intent的startActivityForResult()方法

    1.两种实现activity跳转的方法 实现activity的跳转主要有两种方法,startActivity()和startActivityForResult();例如activity A跳转到act ...

  2. 从零开始学android开发-用Intent启动Activity的方法

    启动另外一个Activity,可以有的方法有用setClass()和Component Name 1. 先说在setClass启动一个Activity的方法吧: Intent intent = new ...

  3. 从零开始学android开发- layout属性介绍

    android:id 为控件指定相应的ID android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:gravity 指定Vi ...

  4. View的setOnClickListener的添加方法

    1)第一种,也是最长见的添加方法(一下都以Button为例) 1 Button btn = (Button) findViewById(R.id.myButton);2 btn .setOnClick ...

  5. 从零开始学android开发-通过WebService进行网络编程,使用工具类轻松实现

    相信大家在平常的开发中,对网络的操作用到HTTP协议比较多,通过我们使用Get或者Post的方法调用一个数据接口,然后服务器给我们返回JSON格式的数据,我们解析JSON数据然后展现给用户,相信很多人 ...

  6. 从零开始学android开发-setBackgroundDrawable与setBackgroundResource的区别

    setBackgroundDrawable和setBackgroundResource的区别很多网友不知道View类提供的setBackgroundDrawable和setBackgroundReso ...

  7. 从零开始学android开发- 应用程序窗体显示状态操作requestWindowFeature

    我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowFeat ...

  8. 从零开始学android开发-四大组件之一 Activity

    1.Activity是Android四大组件(Application Components)之一,简单来说Activity就是平常所见到的用户界面,一般情况下,一个Activity所占的窗口是满屏的, ...

  9. 从零开始学android开发-创建第一个android项目

    打开ADT开发工具

随机推荐

  1. 修改dbwr后台进程数量

    批量执行脚本时,批量数据写回到数据库:从EM中查看到有较多的dbwr的IO请求   查看后台dbwr的进程数量 select * from v$bgprocess 在查询结果中paddr的字段为非'0 ...

  2. Android下高斯模糊的算法和demo

    采用纯java和RenderScript两种方式来做高斯算法. 也可以用NDK来做,想试试的可以参考: http://stackoverflow.com/questions/2067955/fast- ...

  3. Android UI——分享一个登录缓冲界面

    效果如上图 所示 :就是下面的 loading  字母会按顺序一个个的 动起来 ,很好的效果 代码说明 请参考 该文:http://blog.csdn.net/xyz_lmn/article/deta ...

  4. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  5. K2 学习笔记

    转:http://www.cnblogs.com/kaixuanpisces/category/149223.html k2 简介 工作流介绍 k2流程设计简介 K2流程设计详细版(图文)一 K2流程 ...

  6. oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序

    15511477451 原文 oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序? 环境:win7 64位系统.oracle11g数据库 问题描述:在win7 64位系统 ...

  7. C# chart,有关如何在鼠标移动到Series上时显示节点及数据 (有待继续更新)

    一.效果与思路 效果: 解决方案1 用chart的mousemove时间,实时跟踪鼠标最近的X轴的位置,然后把cursorX设置到那个位置上,让用户知道我是选的那一个X的值,同时用tooltip显示该 ...

  8. UITextView 相关知识点

    1.得到UITextView的高度 - (CGRect)contentSizeRectForTextView:(UITextView *)textView { [textView.layoutMana ...

  9. 【转】javascript-图片预加载技术

    1,脚本代码: /** * 图片头数据加载就绪事件 - 更快获取图片尺寸 * @version 2011.05.27 * @author TangBin * @see http://www.plane ...

  10. wuzhicms内的全局函数--load_class()

    load_class() 可以加载并实例化/coreframe/app/模块名/libs/class/$class.class.php类文件里的对象,如果有扩展类文件EXT_$class.class. ...