3.按钮点击事件

实现按钮点击有2中方式:
1.第一种是事件监听
//事件监听通常先获取到按键的id:
Button bt1 = (Button) findViewById(R.id.bt1);
//再对按键添加事件监听,同时实现onClick方法
        bt1.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {}
}
2.第二种是onClick
//首先在按键的布局中添加对onClick属性的函数,引号中的是按键的函数
android:onClick=“click”
//再实现按键的方法
public void onClick(View v) {}
3.也可以使用内部类的方式进行实现,代码如下
public class MainActivity extends Activity {

	String phone;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        
        Button btn_call = (Button) findViewById(R.id.bt_call);
        
        btn_call.setOnClickListener(new MyListener());
    }
    
    class MyListener implements OnClickListener{
    	
    	@Override
    	public void onClick(View v) {
    		dail();
    		
    	}
    }
    
    private void dail(){
    	
    	EditText et_phone = (EditText) findViewById(R.id.et_phone);
        phone = et_phone.getText().toString();
        System.out.println("phone===" + phone);
    	
    	Intent intent = new Intent();
    	intent.setAction(intent.ACTION_CALL);
    	intent.setData(Uri.parse("tel:" + phone));
    	startActivity(intent);
    }

 
 
示例代码如下:
监听的方法实现
public class MainActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button bt1 = (Button) findViewById(R.id.bt1);
	//方法1:通过添加事件监听的方式来实现按钮事件
        bt1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				System.out.println("第一个按钮被点击了");
			}
        	
        });
        
        Button bt2 = (Button) findViewById(R.id.bt2);
        //这里的this指的是MainActivity,只实现了OnClickListener以后才可以自己的监听事件 
        bt2.setOnClickListener(this);
        
    }

	//在布局中添加属性来实现按钮的属性
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		System.out.println("第二个钮被点击了");
	}
	
	public void click(View v){
		System.out.println("第个钮被点击了");
	}

代码
在xml代码中添加onClick的方法
package com.ldw.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener{

	private ImageView iv_home;
	//private boolean isShowLevel2 = true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        initView();
        initListener();
        
    }

	//初始化view
	private void initView() {
		setContentView(R.layout.activity_main);
		
		iv_home = (ImageView) findViewById(R.id.iv_home);
	}
	
    //点击监听
	private void initListener() {
		iv_home.setOnClickListener(this);
		
	}
	
	//实现点击事件
	@Override
	public void onClick(View v){
		switch (v.getId()){
		case R.id.iv_home:
			break;
		default:
			break;
		}
	}


}

范例:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/et_number"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:layout_marginLeft="60dp"
        android:layout_marginTop="180dp"
        android:text="" />

    <EditText
        android:id="@+id/et_content"
        android:layout_marginLeft="60dp"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:text="" />
    <Button
        android:id="@+id/btn_send"
        android:layout_marginLeft="60dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送信息"></Button>
    <Button
        android:id="@+id/btn_dail"
        android:layout_marginLeft="60dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="dail"
        android:text="拨打电话"></Button>
    <Button
        android:id="@+id/btn_toast1"
        android:layout_marginLeft="60dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="弹窗1"></Button>
    <Button
        android:id="@+id/btn_toast2"
        android:layout_marginLeft="60dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="弹窗2"></Button>

</LinearLayout>

MainActivity.java

package com.ldw.test;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends Activity implements View.OnClickListener {

    private Button btn_send;
    private Button btn_dail;
    private EditText et_number;
    private EditText et_content;
    private Button btn_toast1, btn_toast2;
    private static final int PERMISSION_REQUEST_CODE = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

            if (checkSelfPermission(Manifest.permission.SEND_SMS)
                    == PackageManager.PERMISSION_DENIED) {

                Log.d("permission", "permission denied to SEND_SMS - requesting it");
                String[] permissions = {Manifest.permission.SEND_SMS};

                requestPermissions(permissions, PERMISSION_REQUEST_CODE);

            }
            if (checkSelfPermission(Manifest.permission.CALL_PHONE)
                    == PackageManager.PERMISSION_DENIED) {

                Log.d("permission", "permission denied to CALL_PHONE - requesting it");
                String[] permissions = {Manifest.permission.CALL_PHONE};

                requestPermissions(permissions, PERMISSION_REQUEST_CODE);

            }
        }
        btn_send = (Button) findViewById(R.id.btn_send);
        //第一种点击事件的方法
        btn_send.setOnClickListener(new MyListener());

        //第三种点击事件的方法
        show3();
    }

    //第一种点击事件的方法
    class MyListener implements View.OnClickListener{

        @Override
        public void onClick(View v){
            et_content = (EditText) findViewById(R.id.et_content);
            et_number = (EditText) findViewById(R.id.et_number);
            String content = et_content.getText().toString();
            String number = et_number.getText().toString();
            System.out.println("===="+number);
            System.out.println("===="+content);
            SmsManager sm = SmsManager.getDefault();
            ArrayList<String> smss = sm.divideMessage(content);
            for (String string:smss){
                sm.sendTextMessage(number, null, string, null, null);
            }
        }
    }

    //第二种点击事件,直接在布局文件中添加android:onClick="dail"
    public void dail(View v){
        System.out.println("==============");
        et_number = (EditText) findViewById(R.id.et_number);
        String number = et_number.getText().toString();
        Intent intent = new Intent();
        intent.setAction(intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + number));
        startActivity(intent);
    }

    //第三种点击事件的方法
    public void show3(){
        btn_toast1 = (Button) findViewById(R.id.btn_toast1);
        btn_toast2 = (Button) findViewById(R.id.btn_toast2);
        btn_toast1.setOnClickListener(this);
        btn_toast2.setOnClickListener(this);
    }

    //第三种点击的方法
    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.btn_toast1:
                Toast.makeText(this, "弹窗1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_toast2:
                Toast.makeText(this, "弹窗2", Toast.LENGTH_SHORT).show();
                break;
        }
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值