onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。

代码分别如下:

1. xml指定onclick事件,这种方式比较适用于指定的button,能使java代码相对简化一些:

xml文件中:

<Button android:text="Button03"
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<span style="color:#FF0000;">android:onClick="Btn3OnClick"</span>>
</Button>

红色部分指定响应的方法名!

Activity中定义方法:

public void Btn3OnClick(View view){
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
}

2. 在onCreate方法中为button指定绑定操作,以下方法中,xml里如果同时指定了事件的执行方法,则优先执行xml中的内容。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.Button03).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
}
});
}

此种方式会使代码看上去比较直观,但是效率不高,特别是写在listView的适配器中getView时,new出多个对象,占用资源。优化版的写法如下,将点击对象提出来如下:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.Button03).setOnClickListener(onclick);
}
OnClickListener onclick = new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
}
};

3. 实现OnClickListener接口,这种方式使用量比较多,能解决同一个activity中所有的onclick问题。

public class mainActivity extends Activity implements OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.Button02).setOnClickListener(this);
findViewById(R.id.Button03).setOnClickListener(this);
}
public void onClick(View view) {
switch (v.getId()) {
case R.id.Button03:
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
break;
case R.id.Button02:
Intent intent = new Intent(mainActivity.this, loginActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
break;
default:
break;
}
}
……
}

最新文章

  1. maxscale
  2. 【转】 CSS3实现10种Loading效果
  3. Android ListViewview入门
  4. Spring实战学习笔记之SpEL表达式
  5. servlet学习笔记一
  6. 素数个数统计——Eratosthenes筛法 [LeetCode 204]
  7. delphi xe5 android 开发实现手机打电话和发短信
  8. Hadoop2.4.1 使用MapReduce简单的数据清洗
  9. Loading Cargo
  10. bootstrap基础样式使用
  11. 基于ZYNQ的SOC——Hellow_World实验
  12. Mysql的执行计划各个参数详细说明
  13. autium designer smart pdf一个小问题
  14. eclipse导入项目时,仅项目名出现红叉
  15. JavaScript 加解密库(crypto-js)
  16. Daily record-June
  17. C# 如何利用反射,将字符串转化为类名并调用类中方法
  18. Java虚拟机 - Javac编译与JIT编译
  19. 纯 CSS 利用 label + input 实现选项卡
  20. linux 查看服务器序列号

热门文章

  1. WebDriverAPI(4)
  2. 支付宝小程序自定义弹窗插件|支付宝dialog插件|model插件
  3. Python基础5:列表 元祖 字典 集合 Json
  4. java 中break 和continue 的非常规用法
  5. phpredisadmin 莫名其妙错误,打开了无法显示任何数据
  6. 【链表】Swap Nodes in Pairs(三指针)
  7. 【数组】Next Permutation
  8. 【译】Spark调优
  9. IE10以下优雅降级(作为范例)
  10. 问题记录 | PyLint not recognizing cv2 members