在Android应用程序自定义事件监听器 [英] Custom event listener on Android app

查看:192
本文介绍了在Android应用程序自定义事件监听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要设置一个简单的事件监听器在一段时间刷新的ListView 键。问题是我不知道我怎么会产生一个事件。

我知道,像钥匙和按钮pressing事件我只需要实现处理程序。但是,在这种特定的情况下,我真的需要生成事件,这将是每一个我的应用程序的其他正在运行的线程将被唤醒,并刷新新闻名单来自RSS源的时间解雇了。

我所做的一切,但被卡在这里了。我能得到任何建议或链接就如何实现这一一些更多的信息?

解决方案
  1. 定义一个回调接口

     公共接口NewsUpdateListener
            {
                无效onNewsUpdate(小于新闻数据传递&GT);
            }
     

  2. 提供的后台线程,获取RSS源的注册机构

     类<后台处理类名称>
        {
        ....
            ArrayList的< NewsUpdateListener>听众=新的ArrayList< NewsUpdateListener> ();
        ....
            公共无效setOnNewsUpdateListener(NewsUpdateListener监听器)
            {
                //存储的侦听器对象
                this.listeners.add(听众);
            }
        ....
        }
     

  3. 火回调时的新闻请访问

      ....
    对于(监听器:监听器)
    {
        listener.onNewsUpdate(小于新闻数据传递&GT);
    }
    ....
     

  4. 在初始化过程中注册监听器的地方

      ....
        <类<后台处理类对象> .registerListener
    (
        新OnNewsUpdateListener(){
            onNewsUpdate(小于动态数据>){
                //处理新闻数据
                runOnUIThread(新的Runnable(){
                    公共无效的run(){
                        //刷新列表视图
                    }
                }
            }
    }
    ....
     

I need to set up a simple event listener to refresh a ListView once in a while. The problem is I don't know how could I generate an event.

I know that for events like key or button pressing I just need to implement the Handler. But in this specific case I actually need to generate the event, which will be fired every time another running thread of my app wakes up and refreshes its list of news from an RSS feed.

I've done everything, but got stuck in here. Can I get any suggestion or link with some more info on how to implement this?

解决方案

  1. Define a callback interface

            public interface NewsUpdateListener 
            {
                void onNewsUpdate(<News data to be passed>);
            }
    

  2. Provide a registration facility on the background thread which gets the RSS feed

        class <Background processing class name> 
        {
        ....
            ArrayList<NewsUpdateListener> listeners = new ArrayList<NewsUpdateListener> ();
        .... 
            public void setOnNewsUpdateListener (NewsUpdateListener listener) 
            {
                // Store the listener object
                this.listeners.add(listener);
            }
        ....
        }
    

  3. Fire the callback when news is available

    ....
    for (listener : listeners) 
    {
        listener.onNewsUpdate(<News data to be passed>);
    }
    ....
    

  4. Register listener somewhere during initialization

    ....
        <class <Background processing class object>.registerListener
    (
        new OnNewsUpdateListener() {
            onNewsUpdate(<News Data>) {
                // process news data
                runOnUIThread(new Runnable() {
                    public void run() {
                        // refresh list view
                    }
                }
            }
    }
    ....
    

这篇关于在Android应用程序自定义事件监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆