小编Jef*_*rod的帖子

如何在多台显示器上最大化窗口?

使用AutoHotkey,如何绑定热键以跨多个监视器拉伸/最大化/跨越窗口,以便它覆盖两个显示?

现在,我必须通过用鼠标手动拉伸窗口来做到这一点.我知道有专门的工具可以做到这一点,但我已经运行了一个AutoHotkey脚本,宁愿限制我继续运行的工具数量.

autohotkey multiple-monitors

14
推荐指数
3
解决办法
1万
查看次数

如何在Eclipse中编辑/撤消/删除.svnignore中的条目?

这似乎是一个简单的问题,但我无法弄清楚如何从Eclipse编辑svn-ignore列表.奇怪的是,我无法在网络搜索或stackoverflow上找到如何做到这一点.

谢谢!

eclipse svn

13
推荐指数
1
解决办法
1万
查看次数

如何将Android 4.0+模拟器配置为平板电脑?

我一直在为Android 3.x开发Android应用程序,现在我想支持Android 4.0.

所以我从AVD Manager创建了一个新的AVD,目标是Android 4.0.3和API Level 15,分辨率1280 x 800.

模拟器正常运行,但其UI处于手机模式,而不是平板电脑,我的应用程序(用于平板电脑)UI已折叠.即,通知栏设置顶部,而不是底部.

如何让模拟器识别它应该作为平板电脑运行?

android android-virtual-device android-emulator android-4.0-ice-cream-sandwich

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

我可以将按钮显示为禁用并仍然可以听取点击吗?

我想将一个按钮变灰,以便它对用户显示为禁用,但仍然会听取点击,这样我就可以向用户显示一条消息,说明该按钮不适用的原因.

我想确保Android API配置适当的标准禁用外观,而不是手动将按钮颜色设置为灰色等.最好的方法是什么?

相关:Android - 收听已禁用的按钮

android

13
推荐指数
3
解决办法
5112
查看次数

为什么java.lang.Class的getInterfaces()方法返回Class <?> []而不是Class <?超级T> []?

(要清除问题,'T'指的是在Class中声明的类型参数)

举个例子,请查看以下应用程序:

public class TestClass {

    interface InterfaceA{}

    interface InterfaceB{}

    interface InterfaceC{}

    class ClassA implements InterfaceA, InterfaceB,  InterfaceC{}


    public static void main(String[] args){    

        Class<? super ClassA> superClass1 = ClassA.class;
        Class<? super ClassA> superclass2 = InterfaceA.class;
        Class<? super ClassA> superclass3 = InterfaceB.class;
        Class<? super ClassA> superclass4 = InterfaceC.class;

        for(Class<?> clazz : ClassA.class.getInterfaces()){
            System.out.println(clazz.getName());
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是人们所期望的:

TestClass$InterfaceA
TestClass$InterfaceB
TestClass$InterfaceC
Run Code Online (Sandbox Code Playgroud)

因此,基于上面的这个例子,我们可以看到编译器认识到InterfaceA 确实符合通配符的边界,所有其他接口也是如此.

直观地说,我希望以下是安全的,但它不是:

Class<? super ClassA>[] interfaces = ClassA.class.getInterfaces();
Run Code Online (Sandbox Code Playgroud)

编译器发出警告,因为签名表示它返回Class; 但是,Class的javadoc声明如下:

如果此对象表示类,则返回值是一个数组,其中包含表示该类实现的所有接口的对象.

'这个对象'在我们的例子中指的是ClassA.基于此声明,如果我们致电:

ClassA.class.getInterfaces()
Run Code Online (Sandbox Code Playgroud)

然后我们从逻辑上知道Class<?>返回数组中的每一个都将包含对超类型的引用ClassA …

java generics interface bounded-wildcard

12
推荐指数
1
解决办法
2139
查看次数

您使用什么技术来调试复杂的guice绑定?

我有一组复杂的绑定,包括许多私有绑定来解决机器人腿问题.

由于Guice报告可理解的绑定错误的能力有限,我想知道除了阅读之外还有哪些有效的工具或技术,Guice的运行时异常可用于解决运行时绑定错误.

单步执行配置代码没有帮助,因为配置发生在引导时而不是在通常发生错误的对象实例化时.

如果Guice图形插件有效,它可能会很有用 - 我用它进行的实验导致图形不正确.

java debugging dependency-injection guice

12
推荐指数
1
解决办法
5503
查看次数

Java泛型:有界类型参数中的多重继承<T扩展A&I>

我即将创建一个工厂,它创建某种类型的对象T,它扩展了某个类A和另一个接口I.但是,T必须是未知的.以下是最低声明:

public class A { }
public interface I { }
Run Code Online (Sandbox Code Playgroud)

这是工厂方法:

public class F {
    public static <T extends A & I> T newThing() { /*...*/ }
}
Run Code Online (Sandbox Code Playgroud)

这编译所有罚款.

当我尝试使用该方法时,以下工作正常:

A $a = F.newThing();
Run Code Online (Sandbox Code Playgroud)

......虽然这不是:

I $i = F.newThing();
Run Code Online (Sandbox Code Playgroud)

编译器抱怨:

绑定不匹配:类型F的泛型方法newThing()不适用于arguments().推断的类型I和A不是有界参数的有效替代

我不明白为什么.明确指出"newThing返回某种类型的东西T,它确实扩展了A类并实现了接口I".当分配给一个一切正常(因为T延伸的),但分配给我并没有(因为什么?,清楚地返回的东西既是一个一个I)

另外:当返回一个对象时,比如说类型B class B extends A implements I,我需要将它转换为返回类型T,尽管B匹配边界:

<T extends A & I> T newThing() {
    return (T) new B();
}
Run Code Online (Sandbox Code Playgroud)

但是,编译器不会抛出任何警告,如UncheckedCast等.

因此我的问题:

  • 这里出了什么问题?
  • 是否容易实现所需的行为(即分配给静态类型A或I的变量),就像在工厂方法中通过强制转换解决返回类型问题一样?
  • 为什么分配到A工作,而我不工作?

-

编辑:这里完整的代码片段完全使用Eclipse 3.7,项目设置为JDK 6: …

java generics types bounded-wildcard

12
推荐指数
2
解决办法
2万
查看次数

Android - 使用ArrayAdapter一次向ListView添加和显示项目

我正在使用ArrayAdapter将项目添加到自定义ListView并在我的Android应用程序中显示结果.我遇到的问题是ArrayAdapter在显示视图之前似乎要等到所有项目都在其中.也就是说,当我将项添加到ArrayAdapter并调用notifyDataSetChanged时,它不会更新ListView以显示添加的项.它等待直到添加所有项目并在显示项目之前调用GetView.

我希望它能够在将项目添加到ListView后立即显示该项目.这可能吗?

我相信相关的代码如下:

r_adapter = new ReminderAdapater(Activity_ContentSearch.this, R.layout.search_listitem, myList);
listView.setAdapter(r_adapter);
...
r_adapter.notifyDataSetChanged();
r_adapter.clear();
for(int i = 0; i < myList.size(); i++)
{
    r_adapter.add(myList.get(i));
    r_adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,即使我在add方法之后调用notifyDataSetChanged,它实际上也不会更新视图.在完成上面的循环之后,视图最终被更新(基于我所知道的,这是因为在完成代码的这一部分之后才调用GetView).

我试图覆盖我的自定义ArrayAdapter的add方法,没有运气,因为我无法访问该方法中的视图.

欢迎任何帮助:)

巴拉

android listview android-arrayadapter android-listview android-asynctask

11
推荐指数
1
解决办法
3万
查看次数

Scala + Android:有人在Eclipse中成功构建和调试吗?

到目前为止,我能够在Eclipse中调试的唯一方法是将Treeshaker与Scala IDE的buggy 2.8分支一起使用.如果我尝试使用没有Treeshaker的Scala IDE进行构建,我会在scala-on-android上的每个长线程中获得ClassNotFound错误.

理想情况下,我会在Eclipse中使用sbt-android和debug进行构建,但我无法成功完成.最接近调试sbt-android项目我能够实现的是使用android:package-debug命令构建sbt-android项目,使用android:start-emulator命令启动可执行文件,然后将DDMS连接到应用程序的线.

但是,我设置的断点只会在我将调试器连接到线程后执行,并且没有一个断点在到达时导致线程停止.

有没有人能够使用除了基于Scala 2.8的Scala IDE的Treeshaker之外的任何其他工具在Eclipse中调试Scala Android代码?

更新:在使用sbt,sbteclipse和android-plugin从命令行构建之后,我在Eclipse中成功调试(不构建).

我所做的是使用Eclipse的新Android项目菜单,连接到现有源,并将其指向./src/main目录.然后Eclipse识别出Android设置,DDMS将该任务识别为属于Eclipse Android项目.

我还必须通过从构建路径中删除src文件夹并添加./scala文件夹来重新配置Eclipse项目的Java构建路径源文件夹.然后我不得不重新启动Eclipse以向Scala文件添加断点.

这里有一些关于使用Eclipse构建和调试Android应用程序的困难的有趣讨论.

android scala scala-ide

11
推荐指数
1
解决办法
1323
查看次数

如何序列化界面?

假设我有一个拥有实现接口的对象的Serializable类.我想确保保存正确的具体形状对象(稍后恢复正确的类型).ShapeHolderSerializable Shape

我怎么能做到这一点?

interface Shape extends Serializable {} 

class Circle implements Shape { 
   private static final long serialVersionUID = -1306760703066967345L;
}

class ShapeHolder implements Serializable {
   private static final long serialVersionUID = 1952358793540268673L;
   public Shape shape;
}
Run Code Online (Sandbox Code Playgroud)

java oop serialization types

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