Android开发入门(九)用户界面 9.3 注册事件监听器

当用户与视图views进行交互的时候,views也会触发事件。举个例子,当用户点击了一个按钮,你需要为 这个事件服务,只有这样,才能去执行某些适当的行为。如果想这么做的话,你就需要为视图views注册监听 。

使用上一节中的例子,在activity中有两个Button。我们可以使用一个匿名的类,为按钮设置点击 事件。

public class UIActivityActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);    

        //---the two buttons are wired to the same event handler---
        Button btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(btnListener);    

        Button btn2 = (Button)findViewById(R.id.btn2);
        btn2.setOnClickListener(btnListener);
    }    

    //---create an anonymous class to act as a button click listener---
    private OnClickListener btnListener = new OnClickListener()
    {
        public void onClick(View v)
        {
            Toast.makeText(getBaseContext(),
                    ((Button) v).getText() + " was clicked",
                    Toast.LENGTH_LONG).show();
        }
    };    

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        switch (keyCode)
        {
            case KeyEvent.KEYCODE_DPAD_CENTER:
                Toast.makeText(getBaseContext(),
                        "Center was clicked",
                        Toast.LENGTH_LONG).show();
                break;
            case KeyEvent.KEYCODE_DPAD_LEFT:
                Toast.makeText(getBaseContext(),
                        "Left arrow was clicked",
                        Toast.LENGTH_LONG).show();
                break;
            case KeyEvent.KEYCODE_DPAD_RIGHT:
                Toast.makeText(getBaseContext(),
                        "Right arrow was clicked",
                        Toast.LENGTH_LONG).show();
                break;
            case KeyEvent.KEYCODE_DPAD_UP:
                Toast.makeText(getBaseContext(),
                        "Up arrow was clicked",
                        Toast.LENGTH_LONG).show();
                break;
            case KeyEvent.KEYCODE_DPAD_DOWN:
                Toast.makeText(getBaseContext(),
                        "Down arrow was clicked",
                        Toast.LENGTH_LONG).show();
                break;
        }
        return false;
    }    

}

如果你点击了OK按钮或Cancel按钮,对应的消息就会出现在屏幕上,这也就说明了,适当的事件 被出发了。

开发入门(九)用户界面 9.3 注册事件监听器-java事件监听器原理">

除了定义一个匿名类,也可以定一个匿名内部类去处理事件。下面的例子展示如何 处理EditText的onFocusChange()方法。

//---create an anonymous inner class to act as an 

onfocus listener---
EditText txt1 = (EditText)findViewById(R.id.txt1);
txt1.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        Toast.makeText(getBaseContext(),
            ((EditText) v).getId() + " has focus - " + hasFocus,
            Toast.LENGTH_LONG).show();
    }
});

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索edittext
, button
, setonclicklistener
, 事件
, toast
, android监听edittext
, show
, button监听android
, PostgreSQL9.3
, button监听事件
, button监听
, KeyEvent
, Android注册界面
clicked
java事件监听器原理、activiti 事件监听器、android事件监听器、javascript事件监听器、js事件监听器,以便于您获取更多的相关知识。

时间: 2024-09-08 10:01:56

Android开发入门(九)用户界面 9.3 注册事件监听器的相关文章

Android开发入门系列

Android开发入门(二十)内容提供者 20.3 经过预定义的查询字符 Android开发入门(二十)内容提供者 20.2 ContentProvider的使用 Android开发入门(二十)内容提供者 20.1 数据共享 Android开发入门(十九)数据库 19.3 预创建数据库 Android开发入门(十九)数据库 19.2 使用数据库 Android开发入门(十九)数据库 19.1创建数据库辅助类 Android开发入门(十八)文件 18.4使用静态资源 Android开发入门(十八)

《Android 开发入门与实战(第二版)》——6.3节Activity的监控范围内的三个主要循环

6.3 Activity的监控范围内的三个主要循环Android 开发入门与实战(第二版)Activity的"整个生命周期"是发生在第一次调用onCreate(Bundle)和唯一最后调用onDestroy()方法之间.一个Activity会在onCreate()方法中设置全局状态,并在onDestrory()方法中释放余下的资源.例如:Activity有一个运行在后台的线程用来从网络上下载数据,则这个线程可能在onCreate()方法中被创建,并在onDestroy()方法停止线程.

android开发-Android开发入门初学遇到的问题

问题描述 Android开发入门初学遇到的问题 Android开发入门学习,使用的是<第一行代码Android>郭霖著在学习至2.2.5 在活动中使用Toast中产生如下疑问,期待各位前辈帮我解答图中为输入的代码 问题1.书中原话是可以通过findViewById()方法获取到在布局文件中定义的元素,这里我们传入R.id.button 1,来得到按钮的实例,这里的按钮的实例是什么意思能否麻烦详细解释一下. 问题2.书中说findViewById()返回的是一个View对象,我们需要向下转型将它

《Android 开发入门与实战(第二版)》——6.5节Task、栈以及加载模式

6.5 Task.栈以及加载模式 Android 开发入门与实战(第二版) 在Android应用程序中,应用程序中的Activity是可以启动其他程序的Activity的,例如,你在A程序中单击了某一串链接地址,应用会自动调用系统的浏览器帮你打开这个链接(如果你的系统中存在多个浏览器,则会打开多个并让你选择其中一个),虽然A程序和浏览器不属于同一个应用,但是你单击"回退"按钮后,依然可以回退到A程序中.像这种无缝的用户体验,主要得益于Android中的Task. 那什么是Task呢?通

《Android 开发入门与实战(第二版)》——6.9节Activity小实例

6.9 Activity小实例 Android 开发入门与实战(第二版) 在介绍完Activity相关基础内容后,现在我们来针对Activity开发一个简单的小实例. 这个实例指定了3个界面(Activity).HelloWorldActivity界面有两个按钮,Button 1和Button 2(见图6-3),Button 1单击后会跳转到Activity B,而Activity B简单地显示"This is Activity B,Welcome!"(见图6-4).单击Button

Android开发入门之Service用法分析_Android

本文实例讲述了Android中Service用法.分享给大家供大家参考,具体如下: 关于Service的讲解网上已经很多了,这里是关于自己通过写代码Service的一点体会 还有结合其他人对Service的一点总结 Service可以理解为一个隐形的Activity 但它又与Activity有些不同,首先Service是没界面,用户看不到 可交互的组件 级别是与Activity是差不多的 Service中定义了一系列和自身声明周期相关的方法: onBind(...)是必须实现的方法,返回一个绑定

Android开发入门之Appwidget用法分析_Android

本文实例讲述了Android Appwidget用法.分享给大家供大家参考,具体如下: App Widgets 是一个小型应用程序的View  他可以嵌入到其他应用程序中(如 桌面程序) 并且可以得到周期性刷新. 在创建App Widget之前需要了解以下几个概念 AppWidgetProviderInfo对象 它是对App Widget 元数据的一个描述,譬如 AppWidget的布局,刷新频率,以及   AppWidgetProvider 类  这些元数据都是定义在XML中. AppWidg

Android开发入门之Appwidget用法分析

本文实例讲述了Android Appwidget用法.分享给大家供大家参考,具体如下: App Widgets 是一个小型应用程序的View  他可以嵌入到其他应用程序中(如 桌面程序) 并且可以得到周期性刷新. 在创建App Widget之前需要了解以下几个概念 AppWidgetProviderInfo对象 它是对App Widget 元数据的一个描述,譬如 AppWidget的布局,刷新频率,以及   AppWidgetProvider 类  这些元数据都是定义在XML中. AppWidg

Android开发入门之Service用法分析

本文实例讲述了Android中Service用法.分享给大家供大家参考,具体如下: 关于Service的讲解网上已经很多了,这里是关于自己通过写代码Service的一点体会 还有结合其他人对Service的一点总结 Service可以理解为一个隐形的Activity 但它又与Activity有些不同,首先Service是没界面,用户看不到 可交互的组件 级别是与Activity是差不多的 Service中定义了一系列和自身声明周期相关的方法: onBind(...)是必须实现的方法,返回一个绑定