第一次是写了一个内部类通过内部类的方式来实现了点击事件。需要注意的是onClick()代码什么时候执行。只有点击按钮的时候才会走onClick里面的代码。
public static boolean isEmpty(CharSequence str) { if (str == null || str.length() == 0) return true; else return false; }
MainActivity就是一个上下文,MainActivity继承了Activity.Activity的父类的父类的父类是Context.在内部类里面用this指代的是内部类对象OnClickListener.所以要用MainActivity.this.
Project->clean.clean的作用是把bin目录和gen目录下所有的东西帮你删掉然后再重新生成一下。
在清单文件AndroidManifest.xml中增加打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
这就是点击事件的第二种写法匿名内部类,第一种写法是内部类.
package com.itheima.secondclickmethod; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.text.TextUtils; 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 { private EditText et_number; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_number = (EditText) findViewById(R.id.editText1); Button btn_call = (Button) findViewById(R.id.button1); //给按钮添加点击事件 匿名内部类 btn_call.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //获取用户输入 String number = et_number.getText().toString().trim(); //判断输入是否为空 if(TextUtils.isEmpty(number)){ //为空提示用户 Toast.makeText(MainActivity.this, "输入不能为空", Toast.LENGTH_SHORT).show(); }else{ //不为空打电话 Intent intent = new Intent(); //指定动作 intent.setAction(Intent.ACTION_CALL); //设置数据 intent.setData(Uri.parse("tel:"+number));//接收一个uri,协议可以自定义 startActivity(intent);//开启另外一个界面 通过这个intent拿到这个意图就可以把打电话这个界面给它拿出来 //打电话会扣钱,涉及到扣除用户的费用 必须声明一个权限 } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima.secondclickmethod" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.CALL_PHONE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.itheima.secondclickmethod.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>