Android学习文档之四种点击事件Word文档下载推荐.docx
《Android学习文档之四种点击事件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android学习文档之四种点击事件Word文档下载推荐.docx(11页珍藏版)》请在冰点文库上搜索。
![Android学习文档之四种点击事件Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/13f6b80f-0ad8-4f75-a4ee-319464117670/13f6b80f-0ad8-4f75-a4ee-3194641176701.gif)
@dimen/activity_vertical_margin"
paddingLeft="
@dimen/activity_horizontal_margin"
paddingRight="
paddingTop="
tools:
context="
.MainActivity"
>
<
EditText
id="
@+id/et_phoneNum"
wrap_content"
inputType="
phone"
hint="
@string/tips"
/>
Button
@+id/bt_call"
text="
@string/call"
layout_below="
@id/et_phoneNum"
layout_alignParentRight="
true"
/RelativeLayout>
strings.xml(在项目的res/values下)代码如下:
?
xmlversion="
1.0"
encoding="
utf-8"
>
resources>
stringname="
app_name"
CallPhone<
/string>
action_settings"
Settings<
hello_world"
Helloworld!
call"
拨打电话<
tips"
请输入电话号码<
/resources>
好了,布局已经写好,下面我们就开始进行点击事件的处理了
1、匿名内部类
匿名内部类就是说一个类(一般是接口)在另一个方法内部实现(我的理解,可能不对,请按照课本真实理解)
其代码如下:
packagecom.hackerant.callphone;
import.Uri;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.text.TextUtils;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity
{
privateButtonbtCall;
privateEditTextetNum;
@Override
protectedvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取对象
btCall=(Button)findViewById(R.id.bt_call);
etNum=(EditText)findViewById(R.id.et_phoneNum);
//设置点击事件
//点击事件相应方法一,匿名内部类
btCall.setOnClickListener(newOnClickListener()
publicvoidonClick(Viewv)
callPhone();
}
});
publicbooleanonCreateOptionsMenu(Menumenu)
//Inflatethemenu;
thisaddsitemstotheactionbarifitispresent.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
/**
*处理拨打电话的业务
*/
publicvoidcallPhone()
Stringnum=etNum.getText().toString().trim();
//如果输入电话号码为空
if(TextUtils.isEmpty(num))
Toast.makeText(getApplicationContext(),"
请输入电话号码!
"
Toast.LENGTH_SHORT).show();
return;
//Intent三步骤:
创建-->
设置action-->
start
Intentintent=newIntent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("
tel:
+num));
startActivity(intent);
}
OK,java代码已经完成,但如果你直接点击运行(RunAsAndroidApplication),你将看到如下错误(屏幕+logcat日志):
该错误是因为在Android中拨打电话可能产生费用,故而需要相应的权限,你需要在AndroidManifest.xml中写上拨打电话的权限,代码是:
uses-permissionandroid:
name="
android.permission.CALL_PHONE"
/>
其位置如下截图:
这时才是真正的完成了,其成功截图如下:
说明:
由于我们已将打电话的业务代码给单独写出,所有在后面的事件中,我们只介绍关键代码
2、重写OnClickListener
其核心代码如下:
@Override
//点击事件相应方法而
btCall.setOnClickListener(newmyOnclickListener());
/**
*重写OnClickListener方法
*@authorjun
*
publicclassmyOnclickListenerimplementsOnClickListener{
其结果参考方法一
3、让MainActivity继承OnClickListener
其核心代码如下:
publicclassMainActivityextendsActivityimplementsOnClickListener
//点击事件相应方法三,该方法需要MainActivity继承OnclickListener,此方法最常用
btCall.setOnClickListener(this);
switch(v.getId())
caseR.id.bt_call:
break;
default:
4、在布局文件中写onclick事件
在activity_main.xml中,改写button代码如下:
onClick="
callPhone"
其onClick对应得便点击方法,该方法则不需要重写OnClickListener
特别介绍:
Toast.makeText(getApplicationContext(),"
Toast英文表示祝酒,但在此处表示弹出框,如上面截图中的“请输入电话号码!
”便是。
在Toast中,一定要有show()方法,因为只有show()才能show出来,否则只是创建一个Toast对象,并没有任何行为。
在makeText中,第一个参数表示上下文,一般我们能用到的是this,getApplicationContext()或**Activity.this,第二个参数是你需要弹出的内容,第三个参数是时长,可以为0(Toast.LENGTH_SHORT)也可以为1(Toast.LENGTH_LONG)
恩,这一篇学习文档就先介绍到这,由于很多原因(主要是我懒)有些知识说的不是很清楚,欢迎前来询问,也希望大神们多多帮助!