android点击事件的四种方式

android点击事件的四种方式

第一种方式:创建内部类实现点击事件

代码如下:

package com.example.dail;

import android.text.TextUtils;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
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 EditText etext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取text文本框内容
        etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
        //根据id获取button按钮
        Button btn = (Button) this.findViewById(R.id.button_dail);
        //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
        btn.setOnClickListener(new MyOnClickListener());
    }
   
    private class MyOnClickListener implements OnClickListener{
        @Override
        public void onClick(View arg0) {
            callphone();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callphone() {
        String e_number = etext.getText().toString();
        if(TextUtils.isEmpty(e_number)) {
            Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
            return ;
        }
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+e_number));
        startActivity(intent);
    }

}
    

 

 

 

第二种方式:采用匿名内部类实现点击事件

package com.example.dail;

import android.text.TextUtils;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
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 EditText etext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取text文本框内容
        etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
        //根据id获取button按钮
        Button btn = (Button) this.findViewById(R.id.button_dail);
        //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
//        btn.setOnClickListener(new MyOnClickListener());
        //第二种方式:采用匿名内部类实现点击事件
        btn.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                callphone();
            }
        });

    }
  
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callphone() {
        String e_number = etext.getText().toString();
        if(TextUtils.isEmpty(e_number)) {
            Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
            return ;
        }
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+e_number));
        startActivity(intent);
    }

}

第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件

package com.example.dail;

import android.text.TextUtils;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
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 EditText etext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取text文本框内容
        etext = (EditText) MainActivity.this.findViewById(R.id.editText1);
        //根据id获取button按钮
        Button btn = (Button) this.findViewById(R.id.button_dail);
        //给按钮添加点击时事件(有四种给按钮添加点击事件方式:1、创建内部类实现点击事件)
//        btn.setOnClickListener(new MyOnClickListener());
        //第二种方式:采用匿名内部类实现点击事件
        /*btn.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                callphone();
            }
        });*/
        //第三种方式:采用Activity实现OnClickListener接口方式来实现点击事件
        btn.setOnClickListener(this);
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callphone() {
        String e_number = etext.getText().toString();
        if(TextUtils.isEmpty(e_number)) {
            Toast.makeText(MainActivity.this, "号码不能为空!", Toast.LENGTH_SHORT).show();
            return ;
        }
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+e_number));
        startActivity(intent);
    }

       @Override
    public void onClick(View arg0) {
        callphone();
    }

}

第四种方式:在布局中绑定一个点击方法

第一步:在布局文件中添加android:onClicke属性

<Button 
        android:onClick="dailButtonOnClick"
        android:id="@+id/button_dail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/editText1"
        android:text="@string/dail"
        />

第二步:在MainActivity中添加dailButtonOnClick方式

private void dailButtonOnClick(){
        callphone();
    }

 

posted @ 2015-07-11 11:35  简简-单单  阅读(994)  评论(0编辑  收藏  举报