• 教我徒弟Android开发入门(二)


    前言:

    上一期实现了简单的QQ登录效果,这一期继续对上一期进行扩展

    本期的知识点:

    Toast弹窗,三种方法实现按钮的点击事件监听

    正文:

     

    Toast弹窗其实很简单,在Android Studio中打上toast,之后按下tab键就能快捷生成一个Toast

    
    
    Toast.makeText(CurrentActivity.this, "内容", Toast.LENGTH_SHORT).show();
    括号中的三个参数,第一个是context(上下文,在哪里显示Toast),第二个是一个String字符串,也就是Toast显示的内容,第三个是Toast显示的时间,short是短的意思
     
    
    

    这样就能实现弹出Toast,我将之前弹出对话框的代码修改成了下列的代码,this就是指当前的activity,这样可以省略的写

     

     关于监听事件,可能我没有讲解得太清楚,拿上面的那个例子来说,我们是让当前的那个activity实现了一个监听接口,之后复写它的onClick方法,通过findviewbyid找到button的实例,调用setOnClickListener为其绑定监听器,之后,当用户点击button按钮,就会进入到onClick方法之中,由v.getid获得当前用户点击的view的id,之后进入到一个switch分支语句之中,id与R.id.button相同,就执行该分支,也就是弹出一个Toast,不只是button,其他的textview,linearlayout等等控件或者是根布局也是可以设置监听器的

     我总结了五种实现时间监听器的方法,可能说法不是正确,不过,知道方法就行了,不必纠结细节

    实现事件监听器的方法:

    • 内部类形式
    • 外部类形式
    • Activity本身作为事件监听器类
    • 匿名内部类形式
    • 直接绑定到标签

     

    内部类形式

    将事件监听器类定义在当前类的内部

      

    复制代码
    public class Test extends Activity{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            MyButtonlistener listener = new MyButtonlistener();
            button.setOnClickListener(listener);
        }
        class MyButtonlistener implements View.OnClickListener{
            @Override
            public void onClick(View v) {
                //相关事件处理
            }
        }
    }
    复制代码

    外类类形式

    Test类

    复制代码
    public class Test extends Activity{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            MyButtonlistener listener = new MyButtonlistener();
            button.setOnClickListener(listener);
        }
    
    }
    复制代码

    MyButtonlistener类

    复制代码
    public class MyButtonlistener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //事件处理
        }
    }
    复制代码

    Activity本身作为事件监听器类

      将Activity本身作为事件监听器类

      

    复制代码
    public class Test extends Activity implements View.OnClickListener{
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            button.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            //事件处理
        }
    }
    复制代码

     

     

    匿名内部类形式

    复制代码
    public class Test extends Activity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button)findViewById(R.id.about);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //事件处理
                }
            });
        }
    }
    复制代码

     

    直接绑定到标签

    在xml的布局文件中加入onClick属性,设置相关的方法

     

    定义一个方法,记得参数是View

     

    想深入了解的还可以看一下这一篇:Android开发之基于监听的事件处理

  • 相关阅读:
    线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource
    研究BackgroundWorker后发现:AsyncOperation和SynchronizationContext的差异真的很大!
    线程同步——优势、劣势
    APM异步编程模型的优势
    DataGridView的VirtualMode,在大容量数据加载时特别有用
    【C】——C语言的位运算的优势
    【linux】——Linux tar打包命令
    【C】用文件和链表实现学生信息管理
    【C】——回调函数的好处
    【C】strcpy()需谨慎使用;
  • 原文地址:https://www.cnblogs.com/stars-one/p/8475519.html
Copyright © 2020-2023  润新知