Android常用监听器的分类

监听器的已有名字:OnClickListener 按钮的点击

代码:

package com.yz.day03_03_button;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 需求:当按钮被点击后,更改TextView中的文字信息
 * 
 * step1:在布局文件中:xml中,添加Button标签
 * 
 * step2:在对应的Activity中,通过findViewById(button的id值),找到该按钮对象
 * 
 * step3:创建一个类实现监听器:OnClickListener: 重写onClick()-->该方法当按钮被点击的时候,会自动执行。
 * 重写的规则:按钮被点击后的操作。
 * 
 * step4:对按钮对象,设置监听器对象: btn.setOnClickListener(listener);
 * 
 * @author Administrator
 * 
 */
public class MainActivity extends Activity {
	TextView tv_show = null;
	int count = 1;
	private Button btn_02;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 设置该Activity,所管理的xml文件:xml负责展示UI界面,activity作为java的类,负责逻辑布局
		setContentView(R.layout.activity_main);
		// 先获取按钮对象
		Button btn = (Button) findViewById(R.id.btn_01);
		btn_02 = (Button) findViewById(R.id.btn_02);
		tv_show = (TextView) findViewById(R.id.textView_show);
		// 创建监听器的对象
		MyListener listener = new MyListener();
		// 给按钮,添加一个点击事件的监听器:用于监听按钮的点击事件。
		btn.setOnClickListener(listener);
		// 方法二:直接使用匿名内部类
		btn_02.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 吐司:
				Toast.makeText(MainActivity.this, "我轻轻的来,轻轻的走",
						Toast.LENGTH_SHORT).show();
			}
		});

	}

	// 方法一:内部类,实现监听器的接口
	class MyListener implements OnClickListener {
		// 当按钮被点击的时候,会自动执行该回调方法。。
		@Override
		public void onClick(View v) {
			// 按钮被点击,要做的事。--》更改TextView的内容
			tv_show.setText("我被点了。。。" + count++);

		}
	}

}


OnCheckedChangeListener 单选按钮 复选框

复选按钮代码:


package com.yz.day03_06_checkbox;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 使用复选框:Checkbox对象
 * 
 * step1:在xml布局中,添加Checkbox标签
 * 
 * step2:在对应的Activity中,找到控件
 * 
 * step3:添加监听:OnCheckedChangeListener
 * 当复选框的状态被改变的时候,就会监听到:执行里面的回调方法:onCheckedChanged(CompoundButton buttonView,
 * boolean isChecked)
 * 
 * @author Administrator
 * 
 */

public class MainActivity extends Activity {

	private CheckBox mCheckBox_01;
	private TextView mTextView_show;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 找到复选框对象
		mCheckBox_01 = (CheckBox) findViewById(R.id.checkBox_01);
		mTextView_show = (TextView) findViewById(R.id.tv_show);
		// 添加监听器:复选框的状态改变的监听
		mCheckBox_01.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			// onCheckedChanged
			// 当mCheckBox_01,的选择状态被改变,就会自动执行该回调方法。
			// 选中-->不选中
			// 没选中-->选中
			/**
			 * 第一个参数:CompoundButton buttonView,指代被改变状态的复选框对象
			 * 
			 * 第二个参数:boolean isChecked:是否被选中
			 */
			@Override
			public void onCheckedChanged(CompoundButton buttonView,
					boolean isChecked) {
				if (isChecked) {
					// 选中
					// 获取复选框的文本信息
					String msg = mCheckBox_01.getText().toString();
					// 更改textview的内容
					mTextView_show.setText(msg);
					Toast.makeText(MainActivity.this, "您选择了。。",
							Toast.LENGTH_SHORT).show();
				} else {
					// 没选中
					mTextView_show.setText("");
					Toast.makeText(MainActivity.this, "您尚未选择",
							Toast.LENGTH_SHORT).show();
				}

			}
		});
	}

}

单选按钮:

package com.yz.day03_08_radiobutton;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;

public class MainActivity extends Activity {
	private static final String TAG = "MainActivity";
	private RadioGroup mRadioGroup01;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 先获取单选按钮控件
		mRadioGroup01 = (RadioGroup) findViewById(R.id.radioGroup01);
		// 添加监听:当单选按钮组中有单选按钮的状态被改变的时候,触发该监听
		mRadioGroup01.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			// 单选按钮被选中,就会中该回调方法
			/**
			 * 第一个参数:RadioGroup group,就是当前的
			 * 
			 * 第二个参数:该组总,被选中的单选按钮的id
			 */
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				switch (checkedId) {
				case R.id.radioButtonMale:
					Toast.makeText(MainActivity.this, "呀,你个汉子。。",
							Toast.LENGTH_SHORT).show();
					break;

				case R.id.radioButtonFemale:
					Toast.makeText(MainActivity.this, "呀,你个女汉子。。",
							Toast.LENGTH_SHORT).show();
					break;
				case R.id.radioButtonOther:
					Toast.makeText(MainActivity.this, "呀,人妖么。。。。",
							Toast.LENGTH_SHORT).show();
					break;
				}
			}
		});
	}

	// 点击按钮,获取被选中的单选按钮的文本信息
	public void onClick(View v) {
		// 获取被选中的单选按钮的id
		int checkedId = mRadioGroup01.getCheckedRadioButtonId();
		// 根据被选中的单选按钮的id值,获取该单选按钮对象
		RadioButton radioButton = (RadioButton) findViewById(checkedId);
		// 获取单选按钮的文本信息
		String msg = radioButton.getText().toString();
		// 在logCat上,打印日志:System.out.println();
		Log.i(TAG, "====" + msg);// 第一个参数:标签,习惯上是当前的类的名字,第二个参数:打印的内容。。
	}

}





OnItemSelectedListener Spinner用的
      OnItemSelcted(AdapterView parent,View view,int position,long id ){
               //方法一:parent.getItemAtPosition(postion)
                //方法二:adpter.getItem(postion)
                //方法三:spinner.getSelectedItem(postion)
        

}






OnItemClickListener  AutoCompleteTextView

mAutoCompleteTextView01.addTextChangedListener(new TextWatcher() {});


TextWatcher  输入框监听器

类名:

Activity
Button
CheckBox
RadioButton
RadioGroup
TextView
EditText
ImageView
Toast
LayoutInflater:布局填充器,打气筒,用于将xml-->View




适配器:采用MVC设计模式
        三要素:
        A:适配器控件:用于展示数据
                AdapterView
                        Spinner
                        AutoCompleteTextView

        B:数据源:List,数组
                程序中自定义:
                res/values/strings.xml
                       

                        getResource().getStringArray(R.array.xxx);//String[]

                解析xml文件:
                        res/xml/xxx.xml

                        getResource().getXml(R.xml.xxx);//XmlResourceParser -->xxx.xml

                来源网络:AsyncTask(Handler的半成品)


        C:适配器对象:
                ArrayAdapter:最简单的一个。只能够展示文本信息
                SimpleAdapter:可以展示图文混排。


MVC:
        model:数据源
        view:视图:
        controller:控制器:Adapter



        Spinner:下拉列表
                ArrayAdapter:展示文本
                        第一个参数:Context
                        第二个参数:每一个item的样式
                                系统:android.R.layout.xxx
                                        android.R.layout.simple_spinner_item
                                        android.R.layout.simple_dropdown_spinner_item
                                        android.R.layout.simple_listview_item_1

                                自定义:res/layout/xxx.xml
                                        R.layout.xxx

                        第三个参数:数据源
                                数组,List


                        当数据源发生改变:刷新:
                                adapter.notifyDataSetChanged();

                SimpleAdapter:展示图文混排
                        第一个参数:Context
                        第二个参数:数据源:List
                        第三个参数:样式:自定义
                        第四个参数:String[] from-->map中的key组成的数组
                        第五个参数:int [] to-->布局中的id组成的数组

你可能感兴趣的:(Android常用监听器的分类)