android-能将一个java监听器分离成给他自己的函数么?

问题描述

能将一个java监听器分离成给他自己的函数么?

我能将set-listener那一行分成小行么?
这是我现在的代码:

protected void onCreate(Bundle savedInstanceState) {
   Preference button = (Preference)getPreferenceManager().findPreference("exitlink");      

      button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
             @Override
             public boolean onPreferenceClick(Preference arg0) {
                finish();
                return true;
             }
        });

我想要像这样的:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Preference button = (Preference)getPreferenceManager().findPreference("exitlink");
    if(button != null) {
         button.setOnPreferenceClickListener(onPreferenceClick);
    }
}

public boolean onPreferenceClick(Preference arg0) {
    finish();
    return true;
}

解决方案

上边的你的代码基本是可以的。给你上边的代码做个小改动:

button.setOnPreferenceClickListener(this);

然后按照需求,让你的类实现特定的接口,在这种情况下 Preference.OnPreferenceClickListener.

可以写一个函数,这个函数返回一个监听器,当你想要写类似的监听器但是需要一些变化的时候非常有用,就像下边这样

private Preference.OnPreferenceClickListener getListener(int listenerId) {
    return new Preference.OnPreferenceClickListener() {
         @Override
         public boolean onPreferenceClick(Preference arg0) {
            Log.i("MyTag", "Listener " + listenerId + " invoked!");
            finish();
            return true;
         }
    };
}

解决方案二:

你可以在你的方法外创建一个变量:

private Preference.OnPreferenceClickListener listener = new Preference.OnPreferenceClickListener() {
     @Override
     public boolean onPreferenceClick(Preference arg0) {
        finish();
        return true;
     }
};

然后用它作为一个变量:setListener(listener). 这个可以让你再你的activity中有多个相同的监听器类

时间: 2024-10-03 04:08:08

android-能将一个java监听器分离成给他自己的函数么?的相关文章

java对象转成JSON串对象丢失

问题描述 java对象转成JSON串对象丢失 将一个java对象转成JSON字符串时,对象的一个属性丢失,求大神指导!!!! 解决方案 java 对象转 json串java嵌套对象转成jsonjava 将json字串转成复杂对象 解决方案二: 也许你定义的对象就是少了一个属性 解决方案三: 理论上是不会丢失的,是不是属性字段单词写错了? 解决方案四: 用jsonobject试试,将java对象转换为json字符串先将java对象转换为json对象,在将json对象转换为json字符串JSONOb

java代码将一个byte数组封装成url,可以直接访问网络下载

问题描述 java代码将一个byte数组封装成url,可以直接访问网络下载 1.我从别的地方能且只能得到一个byte数组和一个文件名,此数组原本是一个doc文件, 2.我现在要将这个数组封装成url下载地址,就是直接在浏览器中输入地址就能直接下载的那种 3.我用的语言是java,服务器是tomcat 各位大神,救命! 解决方案 换个思路,不是组装成url,而是在给定一个selevet,然后在相应的response写回数据.还有要在response返回时设置相应的header参数. Content

Android实现将一个Activity设置成窗口样式的方法_Android

本文实例讲述了Android实现将一个Activity设置成窗口样式的方法.分享给大家供大家参考,具体如下: 1.在res/value文件夹下的style.xml文件中加入如下代码: <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog"> <!-- float_box为我们定义的窗口背景 ,这个不是必须的--> <item name="and

word文档-Android 如何将一个文本保存成Word文档

问题描述 Android 如何将一个文本保存成Word文档 问题如题,在Android中如何将 一个内容 保存成word文档 解决方案 可以用POI来做.. 解决方案二: 有格式么 ? 没有直接建一个文件.doc

java web-如何将一个Java Web程序包装成一个c/s程序?

问题描述 如何将一个Java Web程序包装成一个c/s程序? 假如现有一个Java Web程序,如何用C++/C#代码将此程序包装成一个客户端程序? 解决方案 一个简单的C/S 架构程序 解决方案二: 其实可以用编程语言编写一个外框,在外框里面加载相应的页面即可.具体你可以看下硕鼠这个软件..他们好像就是这么做的 解决方案三: 你用C#建立一个WinForm应用程序,然后窗体中使用WebBrowser来链接你 Java Web页面就可以啦

Android实现将一个Activity设置成窗口样式的方法

本文实例讲述了Android实现将一个Activity设置成窗口样式的方法.分享给大家供大家参考,具体如下: 1.在res/value文件夹下的style.xml文件中加入如下代码: <style name="Theme.FloatActivity" parent="android:style/Theme.Dialog"> <!-- float_box为我们定义的窗口背景 ,这个不是必须的--> <item name="and

请问android的剪贴板内容监听器会不会内存泄露

问题描述 请问android的剪贴板内容监听器会不会内存泄露 if (clipboard == null){ clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { @Override public void onPrimaryCl

异步通过省加载城市-将一个List集合转成JSONObject报错:

问题描述 将一个List集合转成JSONObject报错: 各位大神,我要异步通过省加载城市,可是转json的时候就报错了public String getCitys(){ List<City> citys = cityService.find(""from City where province.pid=?"" new Object[]{pid}); JSONObject jo = new JSONObject(); jo.put("&quo

android中的java简单语法问题

问题描述 android中的java简单语法问题 android中java代码 Button simple = (Button) findViewById(R.id.simple)那个括号里的Button是类名吗?这里为什么写上(Button)而不是new呢?请原谅我java都没有学完就被逼着学android 解决方案 可以将(Button)理解为强制转换,因为findViewById(R.id.simple)这句话通过字面理解就是通过ID找到simple这个控件该控件属于view类型, 而你前