zoukankan      html  css  js  c++  java
  • Android——监听事件总结

    各种监听事件

    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">
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textview1"
                android:text="有链接吗?"
                android:autoLink="all"
                />
            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/autv_1"
                />
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="按钮的监听"
                android:id="@+id/btn_1"
                android:background="@drawable/anniu1"
                />
            <RadioGroup
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:id="@+id/radio_gp">
    
                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="是"
                    android:id="@+id/rb_shi"/>
                <RadioButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="否"
                    android:id="@+id/rb_fou"/>
            </RadioGroup>
    
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="hello world"
                android:id="@+id/et_1"/>
    
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="复选一"
                android:id="@+id/cb_fuxuan1"/>
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="复选二"
                android:id="@+id/cb_fuxuan2"
                />
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="长按触发上下文菜单"
                android:id="@+id/menu_1"/>
    
            <SeekBar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:max="100"
                android:id="@+id/sbr_tuodong"/>
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/anniu2"
                android:id="@+id/iv_bian"
                />
            <ToggleButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textOn="开"
                android:textOff="关"
                android:id="@+id/tgb_1"/>
            <Switch
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/swh_1"/>
    
            <!--对话框-->
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发普通对话框"
                android:onClick="putongdhkonclick"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发单选对话框"
                android:onClick="danxuandhkonclick"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发多选对话框"
                android:onClick="duoxuandhkonclick"/>
    
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发自定义对话框"
                android:onClick="zidingyidhkonclick"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发旋转进度条"
                android:onClick="xuanzhuanjdtonclick"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发水平进度条"
                android:onClick="shuipingjdtonclick"/>
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="点击触发日期对话框"
                android:onClick="riqidhkonclick"/>
            <Button
                android: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;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.jiantinglayout);
    
            //Textview
            TextView textview1 = (TextView)findViewById(R.id.textview1);
            textview1.setAutoLinkMask(Linkify.ALL);
    
            String linktext = "百度链接 www.baidu.com";
            textview1.setText(linktext);
    
            //AutoCompleteTextView
            AutoCompleteTextView 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() {
                @Override
                public void onClick(View v) {
    
                    Toast.makeText(Jianting.this, "按钮点击监听", Toast.LENGTH_SHORT).show();
                }
            });
    
            //Button 长按监听
            btn_1.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public 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() {
                @Override
                public 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() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    
                }
    
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
    
                }
    
                @Override
                public 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
        {
            @Override
            public 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 菜单 上下文菜单
        @Override
        public 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);
        }
    
        @Override
        public 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{
    
            @Override
            public 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() {
                        @Override
                        public 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() {
                        @Override
                        public 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() {
                        @Override
                        public 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() {
                        @Override
                        public 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()
            {
                @Override
                public 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() {
                @Override
                public 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() {
                @Override
                public 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();
    
        }
    }
    复制代码
  • 相关阅读:
    Springboot默认配置文件application.properties的常见配置属性
    Springboot基础核心
    这样统计代码执行耗时,才足够优雅!
    什么原因才导致 select * 效率低下的?
    建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统
    [LeetCode] 543. 二叉树的直径
    Mybatis源码分析(一)
    Dockerfile创建docker
    JavaScript浅析
    mac os下 vmware Fusion Linux虚拟机配置静态ip无法上网问题
  • 原文地址:https://www.cnblogs.com/DreamRecorder/p/8961966.html
Copyright © 2011-2022 走看看