各种监听事件
1.按钮 Button
(1)点击监听
btn_1.setOnClickListener(new View.OnClickListener() {
(2)长按监听
btn_1.setOnLongClickListener(new View.OnLongClickListener() {
2.单选框 RadioGroup
radio_gp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
3.复选框 CheckBox(普通内部类)
cb_fuxuan1.setOnCheckedChangeListener(new checkboxcheckedlistener());
cb_fuxuan2.setOnCheckedChangeListener(new checkboxcheckedlistener());
private class checkboxcheckedlistener implements CompoundButton.OnCheckedChangeListener
{}
4.上下文菜单 ContextMenu(需要长按才能触发)
changan_menu.setOnCreateContextMenuListener(this);
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
//获取值
public boolean onContextItemSelected(MenuItem item) {
item.getItemId()}
5.进度条 SeekBar(可拖动)
sbr_td.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {}
6.开关 开关按钮:ToggleButton 推拉开关 Switch
tb.setOnCheckedChangeListener(new anniucheckedlistener());
private class anniucheckedlistener implements CompoundButton.OnCheckedChangeListener{
7.对话框 方法链构造 new AlertDialog.Builder(this)
单选对话框
final String[] yanse = {"红","黄","绿","蓝","白"};
.setSingleChoiceItems(yanse, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//多选对话框
final String[] yanse = {"红","黄","绿","蓝","白"};
final boolean[] bl = {true,true,false,false,false};
.setMultiChoiceItems(yanse, bl, new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//自定义对话框 加载器
getLayoutInflater() setview
LayoutInflater layoutInflater = getLayoutInflater();
}
}
8.进度条 ProgressDialog
//旋转进度条
final ProgressDialog pd = new ProgressDialog(this);
//水平进度条
ProgressDialog pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
9.日期对话框
Calendar cl = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(this,监听, cl.get(Calendar.YEAR),cl.get(Calendar.MONTH),cl.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
//监听 =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
}
}
10.时间对话框
//获取当前日期
//单例模式,设计模式的一种 静态方法
Calendar cl = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(this,监听,cl.get(Calendar.HOUR),cl.get(Calendar.MINUTE),true);
timePickerDialog.show();
//监听 =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
}
}
11.ListView
(1)ArrayAdapter
//构造适配器
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.listview_layout,list);
//设置适配器
listview_1.setAdapter(adapter);
//监听事件
listview_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
(2)SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,im,R.layout.simple_layout,str,viewid);
simple_1.setAdapter(simpleAdapter);
simple_1.setOnItemClickListener();
(3)BaseAdapter
12.自动提示文本框
AutoCompleteTextView autv_1 = (AutoCompleteTextView)findViewById(R.id.atv_1);
13下拉列表
Spinner sper_1 = (Spinner)findViewById(R.id.sper_1);
sper_1.setAdapter(adapter);
sper_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
14.消息提示
Resources res = Activitywenben.this.getResources();
//1.获取状态栏消息管理器
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
//2.构建消息 用Builder构建 方法链调用
Notification nt = new Notification.Builder(this)
//3.交给管理器发出消息
manager.notify(0,nt);
xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/textview1"android:text="有链接吗?"android:autoLink="all"/><AutoCompleteTextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/autv_1"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="按钮的监听"android:id="@+id/btn_1"android:background="@drawable/anniu1"/><RadioGroupandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:id="@+id/radio_gp"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="是"android:id="@+id/rb_shi"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="否"android:id="@+id/rb_fou"/></RadioGroup><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="hello world"android:id="@+id/et_1"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="复选一"android:id="@+id/cb_fuxuan1"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="复选二"android:id="@+id/cb_fuxuan2"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="长按触发上下文菜单"android:id="@+id/menu_1"/><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:id="@+id/sbr_tuodong"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/anniu2"android:id="@+id/iv_bian"/><ToggleButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textOn="开"android:textOff="关"android:id="@+id/tgb_1"/><Switchandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/swh_1"/><!--对话框--><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发普通对话框"android:onClick="putongdhkonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发单选对话框"android:onClick="danxuandhkonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发多选对话框"android:onClick="duoxuandhkonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发自定义对话框"android:onClick="zidingyidhkonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发旋转进度条"android:onClick="xuanzhuanjdtonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发水平进度条"android:onClick="shuipingjdtonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发日期对话框"android:onClick="riqidhkonclick"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击触发时间对话框"android:onClick="shijiandhkonclick"/></LinearLayout></ScrollView>
java
package com.example.chenshuai.test322;import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.ProgressDialog; import android.app.TimePickerDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.util.Linkify; import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.DatePicker; import android.widget.EditText; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.Switch; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import android.widget.ToggleButton;import java.util.Calendar;/*** Created by chenshuai on 2016/4/1.*/ public class Jianting extends AppCompatActivity {ImageView iv_bian;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.jiantinglayout);//TextviewTextView textview1 = (TextView)findViewById(R.id.textview1);textview1.setAutoLinkMask(Linkify.ALL);String linktext = "百度链接 www.baidu.com";textview1.setText(linktext);//AutoCompleteTextViewAutoCompleteTextView autv_1 = (AutoCompleteTextView)findViewById(R.id.autv_1);String[] str = {"ab","abc","abcd"};ArrayAdapter<String> stringArrayAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str);autv_1.setAdapter(stringArrayAdapter);//Button 点击Button btn_1 = (Button)findViewById(R.id.btn_1);btn_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Jianting.this, "按钮点击监听", Toast.LENGTH_SHORT).show();}});//Button 长按监听btn_1.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {Toast.makeText(Jianting.this, "按钮长按监听", Toast.LENGTH_SHORT).show();return false;}});//RadioGroup 的监听RadioGroup radio_gp = (RadioGroup)findViewById(R.id.radio_gp);radio_gp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton rb_shi = (RadioButton) findViewById(R.id.rb_shi);RadioButton rb_fou = (RadioButton) findViewById(R.id.rb_fou);switch (checkedId) {case R.id.rb_shi:Toast.makeText(Jianting.this, "选中了" + rb_shi.getText(), Toast.LENGTH_SHORT).show();case R.id.rb_fou:Toast.makeText(Jianting.this, "选中了" + rb_fou.getText(), Toast.LENGTH_SHORT).show();}}});//显示Edittext的输入内容EditText editText = (EditText)findViewById(R.id.et_1);String str1 = editText.getText().toString();Toast.makeText(Jianting.this, str1, Toast.LENGTH_SHORT).show();//checkbox的监听CheckBox cb_fuxuan1 = (CheckBox)findViewById(R.id.cb_fuxuan1);cb_fuxuan1.setOnCheckedChangeListener(new checkboxcheckedlistener());CheckBox cb_fuxuan2 = (CheckBox)findViewById(R.id.cb_fuxuan2);cb_fuxuan2.setOnCheckedChangeListener(new checkboxcheckedlistener());//menu 菜单 上下文菜单Button changan_menu = (Button)findViewById(R.id.menu_1);changan_menu.setOnCreateContextMenuListener(this);//SeekBar 可拖动进度条SeekBar sbr_td = (SeekBar)findViewById(R.id.sbr_tuodong);sbr_td.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});//开关键控制按钮背景iv_bian = (ImageView)findViewById(R.id.iv_bian);//开关按钮ToggleButton tb = (ToggleButton)findViewById(R.id.tgb_1);tb.setOnCheckedChangeListener(new anniucheckedlistener());//推拉开关Switch swh = (Switch)findViewById(R.id.swh_1);swh.setOnCheckedChangeListener(new anniucheckedlistener());}//普通内部类 checkbox的监听private class checkboxcheckedlistener implements CompoundButton.OnCheckedChangeListener{@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {CheckBox cb = (CheckBox)buttonView;if (isChecked){Toast.makeText(Jianting.this, "选中了"+cb.getText(), Toast.LENGTH_SHORT).show();}else{Toast.makeText(Jianting.this, "取消选中了"+cb.getText(), Toast.LENGTH_SHORT).show();}}}//menu 菜单 上下文菜单@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {menu.add(1,1,1,"添加");menu.add(1,2,2,"删除");menu.add(1,3,3,"修改");super.onCreateContextMenu(menu, v, menuInfo);}@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()){case 1:Toast.makeText(Jianting.this, "触发了添加功能", Toast.LENGTH_SHORT).show();case 2:Toast.makeText(Jianting.this, "触发了删除功能", Toast.LENGTH_SHORT).show();case 3:Toast.makeText(Jianting.this, "触发了修改功能", Toast.LENGTH_SHORT).show();}return super.onContextItemSelected(item);}private class anniucheckedlistener implements CompoundButton.OnCheckedChangeListener{@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked){iv_bian.setImageResource(R.drawable.anniu1);}else{iv_bian.setImageResource(R.drawable.anniu2);}}}//普通对话框public void putongdhkonclick(View view){//普通对话框//对话框的构建器/* AlertDialog.Builder ab = new AlertDialog.Builder(this);ab.setTitle("数据删除");ab.setMessage("确定删除吗?");ab.setPositiveButton("确定",null);ab.setNegativeButton("取消",null);ab.setCancelable(false);ab.show();*///方法链的方法new AlertDialog.Builder(this).setTitle("数据删除").setMessage("确定删除吗?").setPositiveButton("确定",null).setNegativeButton("取消",null).setCancelable(false).show();}public void danxuandhkonclick(View view){final String[] yanse = {"红","黄","绿","蓝","白"};//方法链new AlertDialog.Builder(this).setTitle("单选对话框").setSingleChoiceItems(yanse, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(Jianting.this, "选中了" + yanse[which], Toast.LENGTH_SHORT).show();//移除属性 dialog.dismiss(); 选中一个就会关闭}}).setNeutralButton("确定", null)//普通按钮.setCancelable(false).show();}public void duoxuandhkonclick(View view){final String[] yanse = {"红","黄","绿","蓝","白"};final boolean[] bl = {true,true,false,false,false};//方法链new AlertDialog.Builder(this).setTitle("多选对话框").setMultiChoiceItems(yanse, bl, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {if (isChecked) {Toast.makeText(Jianting.this, "选中了" + yanse[which], Toast.LENGTH_SHORT).show();} else {Toast.makeText(Jianting.this, "取消选中了" + yanse[which], Toast.LENGTH_SHORT).show();}}}).setNeutralButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//遍历数组 foreach循环for (boolean b : bl) {try {Thread.sleep(100);} catch (Exception ex) {}Toast.makeText(Jianting.this, "取值"+b, Toast.LENGTH_SHORT).show();}}}).setCancelable(false).show();}//自定义对话框public void zidingyidhkonclick(View view){//1.获取加载器LayoutInflater layoutInflater = getLayoutInflater();//2.用加载器加载文件final View view2 = layoutInflater.inflate(R.layout.loginlayout, null);//方法链构造页面加两个按钮new AlertDialog.Builder(this).setView(view2)//兼容性好,比较适用//.setView(R.layout.loginlayout).setNegativeButton("取消", null).setPositiveButton("登陆", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {EditText user = (EditText) view2.findViewById(R.id.et_username);EditText pas = (EditText) view2.findViewById(R.id.et_password);}}).show();}//旋转进度条public void xuanzhuanjdtonclick(View view){final ProgressDialog pd = new ProgressDialog(this);pd.setMessage("正在加载");pd.show();//创建thread实例 =【重写run方法 启动多线程new Thread(){@Overridepublic void run() {super.run();try{Thread.sleep(3000);}catch (Exception ex){}pd.dismiss();//关闭}}.start();}//水平进度条public void shuipingjdtonclick(View view){ProgressDialog pd = new ProgressDialog(this);pd.setMessage("正在加载");pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pd.show();}//日期对话框public void riqidhkonclick(View view){//获取当前日期//单例模式,设计模式的一种 静态方法Calendar cl = Calendar.getInstance();DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {Toast.makeText(Jianting.this, year+"-"+ (monthOfYear+1) + "-" + dayOfMonth, Toast.LENGTH_SHORT).show();}},cl.get(Calendar.YEAR),cl.get(Calendar.MONTH),cl.get(Calendar.DAY_OF_MONTH));datePickerDialog.setCancelable(false);datePickerDialog.show();}//时间对话框public void shijiandhkonclick(View view){//获取当前日期//单例模式,设计模式的一种 静态方法Calendar cl = Calendar.getInstance();TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {Toast.makeText(Jianting.this, hourOfDay+":"+minute , Toast.LENGTH_SHORT).show();}},cl.get(Calendar.HOUR),cl.get(Calendar.MINUTE),true);timePickerDialog.setCancelable(false);timePickerDialog.show();} }