android基礎入門控件詳解(4)

一.Button、TextView、EditText、RadioButton、RadioGroup、CheckBox綜合使用:

佈局文件:

activity_main.xml:

    

    
    
        

        

        
        
    
    

    

    
    

strings.xml:



    HelloWorld
    Settings
    詞語拼接
    提交
    名字
    星星
    月亮
    太陽
    天
    地
    海

MainActivity.java:

package com.example.helloworld;



import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {
    //用來輸入姓名
	private EditText name;
	//創建RadioGroup對象
	private RadioGroup rg;
	//創建三個RadioButton對象
	private RadioButton sun,moon,stars;
	//創建三個CheckBox對象
	private CheckBox day,theearth,sea;
	//創建提交按鈕
	private Button submit;
	//用於顯示的文本
	String text="";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//findViewById()方法獲得佈局文件中的控件,通過Id獲取。
		name =(EditText)findViewById(R.id.name);
		rg = (RadioGroup)findViewById(R.id.RadioGroup);
		
		sun = (RadioButton)findViewById(R.id.sun);
		moon = (RadioButton)findViewById(R.id.moon);
		stars = (RadioButton)findViewById(R.id.stars);
		
		day = (CheckBox)findViewById(R.id.day);
		theearth = (CheckBox)findViewById(R.id.theearth);
		sea = (CheckBox)findViewById(R.id.sea);
		
		submit = (Button)findViewById(R.id.submit);
		
		
		//為單項選擇添加事件。
		rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				
			     if(checkedId == sun.getId()){
                        text +=sun.getText().toString();
			     }else if(checkedId == moon.getId()){
			    	 text +=moon.getText().toString();
			     }else{
			    	 text +=stars.getText().toString();
			     }
			
			}
		});
		
		//多項選擇的事件隻寫一個。那兩個可以根據自己的需求來填寫。
		day.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

				if(day.isChecked()){
					displayToast("你喜歡"+day.getText());
				}
				
			}
		});
		
		
		
		
		//添加按鈕點擊事件,用吐司來顯示選中內容。
		submit.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String str="喜歡";
				if(day.isChecked()){
					str += day.getText()+"、";
				}
				if(theearth.isChecked()){
					str += theearth.getText()+"、";
				}
				if(sea.isChecked()){
					str += sea.getText()+"、";
				}
				
				displayToast(name.getText().toString()+str+text);
				
			}
		});
	}
    //吐司,信息提示。
	public void displayToast(String text){
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
	}
}

運行圖片:

當選中天多項選擇時,則會觸發事件彈出吐司信息。

當輸入名字和單項選擇之後點擊提交按鈕,就會觸發事件,提示你選中的信息。

二.單擊事件:

單擊事件有三種常用處理方式:

1).匿名內部類作為事件監聽:

實現:

按鈕:

代碼:

	        Button button;
		button = (Button)findViewById(R.id.click);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {

				displayToast("點擊按鈕");
				
			}
		});

運行圖片:

2).內部類作為監聽器:

按鈕:

代碼:

public class MainActivity extends Activity {

		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
	    Button button;
		button = (Button)findViewById(R.id.click);
		button.setOnClickListener(new ButtonOnClick());
		
	}
	private final class ButtonOnClick implements OnClickListener{

		@Override
		public void onClick(View v) {

			displayToast("點擊按鈕");
			
		}
		
	}
	
	public void displayToast(String text){
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
	}
	@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;
	}
}

運行圖片:

3).在控件中指定監聽方法:

android:onClick=”指定方法名字”

按鈕:

 

代碼:

public class MainActivity extends Activity {

		
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
	    Button button;
		button = (Button)findViewById(R.id.click);
		
		
	}
	//必須按這樣的格式,方法名和參數名可以修改其他不能改動。
	public void onClick(View v){
		
		displayToast("我已經點擊瞭按鈕");
		
	}
	public void displayToast(String text){
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
	}
	@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;
	}
}

運行圖片

還有其他事件監聽方式,想瞭解的大傢可以去查。

發佈留言