android学习之4种点击事件的响应方式

来源:互联网 发布:qq mac版支持哪个系统 编辑:程序博客网 时间:2024/05/17 04:58

   如题,下面就一一列出对点击事件响应的4种方式:

第一种:内部类的形式:

   

package com.example.dail;import android.net.Uri;import android.os.Bundle;import android.renderscript.Int2;import android.text.TextUtils;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private Button bt_dail = null;private EditText et_number = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bt_dail = (Button) findViewById(R.id.bt_dail);et_number = (EditText) findViewById(R.id.et_number);bt_dail.setOnClickListener(new MyListener());}private void callPhone() {String number = et_number.getText().toString();if(TextUtils.isEmpty(number)) {Toast.makeText(MainActivity.this, "号码不能为空", 1).show();}Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);}private class MyListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubcallPhone();}}}
  创建一个内部类MyListener实现OnClickListener接口。

第二种:匿名内部类:

package com.example.dail;import android.net.Uri;import android.os.Bundle;import android.renderscript.Int2;import android.text.TextUtils;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private Button bt_dail = null;private EditText et_number = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bt_dail = (Button) findViewById(R.id.bt_dail);et_number = (EditText) findViewById(R.id.et_number);bt_dail.setOnClickListener(new OnClickListener(){public void onClick(View v){callPhone();}});}private void callPhone() {String number = et_number.getText().toString();if(TextUtils.isEmpty(number)) {Toast.makeText(MainActivity.this, "号码不能为空", 1).show();}Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);}}
第三种:在xml布局文件中,定义onclick的方式

<Button    android:onClick="btOnClick"    android:id="@+id/bt_dail"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_below="@id/et_number"    android:text="@string/dail"/>"

然后再主类里面实现btOnClick方法,

private void btOnClick(View v) {callPhone();}private void callPhone() {String number = et_number.getText().toString();if(TextUtils.isEmpty(number)) {Toast.makeText(MainActivity.this, "号码不能为空", 1).show();}Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);}

第四种:让主类实现OnClickListener接口,然后再主类实现未实现的方法

package com.example.dail;import android.net.Uri;import android.os.Bundle;import android.renderscript.Int2;import android.text.TextUtils;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private Button bt_dail = null;private EditText et_number = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bt_dail = (Button) findViewById(R.id.bt_dail);et_number = (EditText) findViewById(R.id.et_number);bt_dail.setOnClickListener(this);}private void callPhone() {String number = et_number.getText().toString();if(TextUtils.isEmpty(number)) {Toast.makeText(MainActivity.this, "号码不能为空", 1).show();}Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:"+number));startActivity(intent);}@Overridepublic void onClick(View v) {callPhone();}}
如上所述,4种点击事件的响应方式就是如此。


<pre code_snippet_id="103066" snippet_file_name="blog_20131208_4_3031669" name="code" class="java">
<pre code_snippet_id="103066" snippet_file_name="blog_20131208_5_5713865" name="code" class="java"><pre code_snippet_id="103066" snippet_file_name="blog_20131208_5_5713865" name="code" class="java"><pre code_snippet_id="103066" snippet_file_name="blog_20131208_5_5713865">
	
				
		
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 蘑菇街发货好慢怎么办 买手机不给开票怎么办 泰迪狗皮肤病怎么办 狗狗皮肤病严重怎么办? 钢梁高厚比超限怎么办 手机壳按键难按怎么办 层间位移角超限怎么办 淘宝店排名靠后怎么办 如果地震了你会怎么办 地震来了怎么办60字 如果迷路了你会怎么办 吃多了抽烟想吐怎么办 晚上牙疼得要命怎么办 楼梯被火封锁后怎么办 牙齿疼怎么办能快速不疼 我被短信轰炸了怎么办 火警响了在家该怎么办 痔疮肉球变大了怎么办 痔疮长了好几个怎么办 苹果7手机丢了怎么办 如果油锅着火了怎么办 家里电气著火了怎么办 你家油锅起火了怎么办 交通事故后对方不肯去处理怎么办 租的车出了事故怎么办 借的车出了事故怎么办 台风来了怎么办小知识 台中班台风来了怎么办 地震时在五楼怎么办 小事故对方不来怎么办 发生交通事故对方不处理怎么办 当地震来了该怎么办 地震来了该怎么办教案 地震来了怎么办的问题 住30楼的地震了怎么办 在家里地震来了怎么办? 乐高地震来了怎么办? 地震来了该怎么办300字 地震来了该怎么办200 外地在北京生孩子建档怎么办 怀孕2个月头疼怎么办