Android三种点击事件实现

来源:互联网 发布:手机文字识别软件 编辑:程序博客网 时间:2024/06/05 07:24

http://www.cnblogs.com/ZhcL/p/5334348.html

http://www.jb51.net/article/84432.htm

onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。
代码分别如下:
1. xml指定onclick事件,这种方式比较适用于指定的button,能使java代码相对简化一些:
xml文件中:

?
1
2
3
4
5
6
<spanstyle="color:#333333;"><Buttonandroid:text="Button03" 
  android:id="@+id/Button03" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  <spanstyle="color:#FF0000;">android:onClick="</span><spanstyle="color:#ff0000;">Btn3OnClick</span><spanstyle="color:#333333;">"</span>> 
</Button> </span>

红色部分指定响应的方法名!
Activity中定义方法:

?
1
2
3
4
5
publicvoid Btn3OnClick(View view){ 
  Intent intent = newIntent(mainActivity.this, fristActivity.class); 
  intent.putExtra("data","mainActivity"); 
  startActivity(intent); 

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

?
1
2
3
4
5
6
7
8
9
10
11
12
protectedvoid onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  findViewById(R.id.Button03).setOnClickListener(newOnClickListener(){ 
    @Override 
    publicvoid onClick(View v) { 
      Intent intent = newIntent(mainActivity.this, fristActivity.class); 
      intent.putExtra("data","mainActivity"); 
      startActivity(intent);      
    }     
  }); 
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
protectedvoid onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  findViewById(R.id.Button03).setOnClickListener(onclick); 
OnClickListener onclick = newOnClickListener(){ 
  @Override 
  publicvoid onClick(View v) { 
    Intent intent = newIntent(mainActivity.this, fristActivity.class); 
    intent.putExtra("data","mainActivity"); 
    startActivity(intent);  
  
};

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
publicclass mainActivity extendsActivity implementsOnClickListener{ 
  protectedvoid onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    findViewById(R.id.Button02).setOnClickListener(this); 
    findViewById(R.id.Button03).setOnClickListener(this); 
  
  publicvoid onClick(View view) { 
    switch(v.getId()) { 
      caseR.id.Button03: 
        Intent intent = newIntent(mainActivity.this, fristActivity.class); 
        intent.putExtra("data","mainActivity"); 
        startActivity(intent);  
        break;      
      caseR.id.Button02: 
        Intent intent = newIntent(mainActivity.this, loginActivity.class); 
        intent.putExtra("data","mainActivity"); 
        startActivity(intent);  
        break;  
      default
        break
    
  
  …… 
0 0