小编jos*_*ard的帖子

Android多态:反模式?

我正在阅读O'Reilly的"Programming Android"一书,我试图从第99页开始讨论"覆盖和回调"部分.他们将此作为优秀代码的示例:

public class MyModel {
    public MyModel(TextView textBox) {
        textBox.addTextChangedListener(
            new TextWatcher() {
                public void afterTextChanged(Editable s) {
                    handleTextChange(s);
                }
                // ...
    }
    void handleTextChange(Editable s) {
        // do something with s, the changed text.
    }
}
Run Code Online (Sandbox Code Playgroud)

后来由于缺乏可扩展性封装而将其称为反模式:

public class MyModel implements TextWatcher {
    public MyModel(TextView textBox) {
        textBox.addTextChangedListener(this);
    }

    public void afterTextChanged(Editable s) {
        handleTextChange(s);
    }

    // ...

    void handleTextChange(Editable s) {
        // do something with s, the changed text.
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有看到两者之间的功能差异,除了第二个更具可读性.两者都采用TextView,并实现一个处理函数来覆盖.难道第二个不会像这样容易扩展吗?

public class AnotherModel …
Run Code Online (Sandbox Code Playgroud)

java polymorphism android

8
推荐指数
1
解决办法
1634
查看次数

Android ADT:移动视图混合ID(错误?)

我一直有一个非常恼人的问题,我怀疑是一个Android ADT错误(v21.0.0-519525).

假设我正在使用两个视图处理一个Activity - 顶部是TextView,底部是ImageView.我想将TextView从顶部移动到底部.如果我在GUI中单击或拖动它,或者我在XML中剪切/粘贴它,预览和XML代码的一切看起来都很好,但是当我去运行应用程序时,它们的ID似乎混淆了.将R.id.textView强制转换为TextView的代码会抛出错误,因为它现在认为R.id.textView是一个ImageView.

有没有其他人遇到这个?有办法解决吗?

android paste adt

5
推荐指数
1
解决办法
188
查看次数

Android锁屏控制在<= 4.1.2

我知道Jelly Bean 4.2增加了创建锁屏小部件的能力,但我也注意到某些应用程序(例如Spotify)已经为我的4.1.2手机添加了锁屏播放/暂停/停止/等控制.我不能为我的生活弄清楚他们是如何做到的.如何在我的应用程序中执行此类操作?

谢谢!

android locking screen widget android-4.2-jelly-bean

2
推荐指数
1
解决办法
5361
查看次数