android学习笔记003-点击事件的四种写法

一个按钮对点击事件相应的四种方法。

1、通过新建一个借口类来具体实现点击时间的响应:
package com.example.dailcall;

import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;//创建 OnClickListener接口的时候要导入这个包
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    // 定义组建
    private EditText et;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et=(EditText) findViewById(R.id.et_number); //通过findViewById来查找组建名,绑定到定义的组建变量。
        btn=(Button) findViewById(R.id.btn_dail);
        btn.setOnClickListener(new MyClickListener());//通过新建一个借口类来具体实现点击时间的响应。

    }

    private class MyClickListener implements OnClickListener{

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            callNumber();

        }

    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callNumber() {
        Intent intent=new Intent();

        String number=et.getText().toString().trim();

        if (TextUtils.isEmpty(number)) {
            Toast.makeText(MainActivity.this, "电话号码不能为空!", 0).show();
            return;
        }

        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));

        startActivity(intent);
    }
}

2、通过new一个匿名内部类类实现:

package com.example.dailcall;

import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;//创建 OnClickListener接口的时候要导入这个包
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    // 定义组建
    private EditText et;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et=(EditText) findViewById(R.id.et_number); //通过findViewById来查找组建名,绑定到定义的组建变量。
        btn=(Button) findViewById(R.id.btn_dail);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                callNumber();
            }
        });

    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callNumber() {
        Intent intent=new Intent();

        String number=et.getText().toString().trim();

        if (TextUtils.isEmpty(number)) {
            Toast.makeText(MainActivity.this, "电话号码不能为空!", 0).show();
            return;
        }

        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));

        startActivity(intent);
    }
}

3、让MainActivity来实现点击时间的借口

package com.example.dailcall;

import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;//创建 OnClickListener接口的时候要导入这个包
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements OnClickListener {

    // 定义组建
    private EditText et;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et=(EditText) findViewById(R.id.et_number); //通过findViewById来查找组建名,绑定到定义的组建变量。
        btn=(Button) findViewById(R.id.btn_dail);
        btn.setOnClickListener(this);

    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callNumber() {

        Intent intent=new Intent();
        String number=et.getText().toString().trim();
        if (TextUtils.isEmpty(number)) {
            Toast.makeText(MainActivity.this, "电话号码不能为空!", 0).show();
            return;
        }

        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));

        startActivity(intent);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.btn_dail:

            callNumber();
            break;

        default:
            break;
        }
    }
}

4、在布局文件中button的按钮里边定义一个onclick的属性:

package com.example.dailcall;

import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;//创建 OnClickListener接口的时候要导入这个包
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    // 定义组建
    private EditText et;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et=(EditText) findViewById(R.id.et_number); //通过findViewById来查找组建名,绑定到定义的组建变量。
        btn=(Button) findViewById(R.id.btn_dail);

    }

    public void btndail(View view){
        callNumber();
    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void callNumber() {
        Intent intent=new Intent();

        String number=et.getText().toString().trim();

        if (TextUtils.isEmpty(number)) {
            Toast.makeText(MainActivity.this, "电话号码不能为空!", 0).show();
            return;
        }

        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));

        startActivity(intent);
    }
}

其中button的定义文件为:

   <Button
        android:onClick="btndail"
        android:id="@+id/btn_dail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/et_number"
        android:text="@string/dail" />
时间: 2024-10-12 07:58:30

android学习笔记003-点击事件的四种写法的相关文章

Android中按钮的点击事件的四种写法

如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

Android笔记---点击事件的四种写法

Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // ... private class MyListener implements OnClickListener{ public void Onclick(View v){ // ... 点击事件的响应 } } } 2. 採用匿名内部类 ? ?缺点:若是点击事件太多,则须要的匿名内部类太多 class M

Android点击事件的四种写法

Android点击事件的四种写法 一.Android点击事件的四种写法 1.点击事件的第一种写法 .  写一个内部类.实现点击事件的接口 bt.setOnClickListener(new MyButtonListener()); 2.点击事件的第二种写法,匿名内部类 bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { callPhone(); } }); 3.点击事件的第三种

Android中点击事件的四种写法详解

Android中点击事件的四种写法使用内部类实现点击事件使用匿名内部类实现点击事件让MainActivity实现View.OnClickListener接口通过布局文件中控件的属性 第一种方法:使用内部类基本步骤如下: 新建一个MyOnClickListener类并实现View.OnClickListener接口 重写View.OnClickListener接口中的OnClick(View view)方法 给Button绑定一个监听器,并监听一个点击事件示例代码如下: public class

Android 按钮的响应点击事件的4种写法

Android按钮的响应点击事件 学习了按钮的响应点击事件,写一下总结,写的不好的希望大家能给出意见或建议. 这是layout xml文件   点击事件只需要获得Button的id或者onClick <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" an

Android基础--点击事件的四种写法

1.定义内部类,实现点击事件,使用时将内部类对象传入事件源的setOnClickListener()方法中 private class MyClickListener implements View.OnClickListener{ @Override public void onClick(View v) { // 功能代码 } } 2.使用匿名内部类的方式实现点击事件 setOnClickListener(new View.OnClickListener() { @Override publ

无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM 的比较 3.常见adb指令 platform-tools/adb.exe adb.exe : android debug bridge android调试桥 adb devices:列出所以连接的设备 adb kill-server :杀死adb调试桥 adb start-server :启动adb

Android学习---ListView的点击事件,simpleAdapter和arrayadapter的原理和使用 - Hi_Amos

如题,本文将介绍 listview的点击事件,simpleAdapter和arrayadapter的原理和使用. 1.ListView的注册点击事件 //注册点击事件 personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /** * * @param parent 当前ListView * @param view 代表当前被点击的条目 * @param position 当前条目的位置 * @p

Android代码学习--点击事件的几种写法

由来:常规的写法参见<写一个apk>,每次点击按钮,按钮先查找文本框等元素,然后再操作,其实查找操作是很费时的操作,因此将该定义放到Activity的onCreate中:Oncreate只会执行一次,这样Activity一旦执行,就先创建好控件们了. 第二种方法:通过匿名内部类的方法:就是button.setOnClickListener(new OnClickListener(){ //实现OnClickListener接口 @Override public void onClick(Vie