Android独学ノート-5-click事件の4つの書き方

2531 ワード

androidのclickイベントの4つの書き方を簡単に紹介します.使用するプロジェクトは前の文章で修正されました.コードは以下の通りです.
package com.mxy.dail;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {

	//    
	private Button btnDail;
	private EditText phoneNumber;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //  findViewById                      
        btnDail = (Button) findViewById(R.id.btn_dail);
        //         
        // 1      
        //btnDail.setOnClickListener(new MyListener());
        
        // 2      
       /* btnDail.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				callPhone();
				
			}
		});*/
        
        // 3     OnClickListener             
        //            ,   onclick    ,          ,       
        btnDail.setOnClickListener(this);
        
        // 4             ,   Activity      
//        <Button
//        android:onClick="btnClick" ---->        
//        android:id="@+id/btn_dail"
//        android:layout_width="wrap_content"
//        android:layout_height="wrap_content"
//        android:layout_alignLeft="@+id/number"
//        android:layout_below="@+id/number"
//        android:layout_marginTop="21dp"
//        android:text="@string/str_dail" />
        //    
//        public void btnClick(View v){
//        	callPhone();
//        }
        
        phoneNumber = (EditText) findViewById(R.id.number);
    }

    private void callPhone() {
		//         
		EditText phoneNumber = (EditText) MainActivity.this.findViewById(R.id.number);
		String number = phoneNumber.getText().toString();
		//          
		
		//    
		Intent intent = new Intent();
		//      
		intent.setAction(Intent.ACTION_CALL);
		intent.setData(Uri.parse("tel:" + number));
		
		//       AndroidManifest.xml           android.permission.CALL_PHONE
		startActivity(intent);
	}

	private class MyListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			callPhone();
			
		}
    	
    }

	@Override
	public void onClick(View v) {
		callPhone();
		
	}
    
}