监听器的已有名字: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);// 第一个参数:标签,习惯上是当前的类的名字,第二个参数:打印的内容。。
}
}
:
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
<string-array name=""><item></item></string-array>
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<Map>
第三个参数:样式:自定义
第四个参数:String[] from-->map中的key组成的数组
第五个参数:int [] to-->布局中的id组成的数组