小编tbe*_*not的帖子

在notifyDataSetChanged不能在android中工作之后的smoothScrollToPosition

我有一个自定义适配器用于ListView设置并正常工作.在按钮上单击基础数据中的某些内容,因此需要notifyDataSetChanged来刷新ListView.精细.但我也希望ListView滚动到发生更改的行.为此,我在notifyDataSetChanged之后立即调用smoothScrollToPosition.那是行不通的.

如果我不调用notifyDataSetChanged然后滚动工作,所以通知阻止滚动.我可能正在与将来处理的事件进行斗争.任何人都可以给我一个关于出错的指针吗?

android listview

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

如何从Android设备下载SQLite数据库?

在花费数小时试图解决这个问题之前,也许我可以使用某人的专业知识; 是否可以在(Web)服务器上生成SQLite数据库并将其下载到Android设备然后使用它?

我需要同步数据,但完全创建数据库并将其作为二进制文件发送可能要快得多.

sqlite android

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

java.awt.EventQueue.getCurrentEventImpl中的NullPointerException

我已经将Swing应用程序迁移到Java 8,最近我们看到了以下NPE异常.

java.lang.NullPointerException
at java.awt.EventQueue.getCurrentEventImpl(EventQueue.java:848)
at java.awt.EventQueue.getCurrentEvent(EventQueue.java:842)
at java.awt.Component.requestFocusHelper(Component.java:7628)
at java.awt.Component.requestFocusHelper(Component.java:7620)
at java.awt.Component.requestFocus(Component.java:7495)
at javax.swing.JComponent.requestFocus(JComponent.java:1504)
at javax.swing.plaf.basic.BasicPopupMenuUI$MenuKeyboardHelper.stateChanged(BasicPopupMenuUI.java:1173)
at javax.swing.MenuSelectionManager.fireStateChanged(MenuSelectionManager.java:202)
at javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:129)
at javax.swing.JPopupMenu.setVisible(JPopupMenu.java:784)
at javax.swing.JPopupMenu.show(JPopupMenu.java:965)
at org.tbee.swing.StandardComponentPopupMenu.showJTableMenu(StandardComponentPopupMenu.java:555)
at org.tbee.swing.StandardComponentPopupMenu$2.run(StandardComponentPopupMenu.java:175)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Run Code Online (Sandbox Code Playgroud)

迁移回J7是一个问题,因为正在使用lambda,所以我不能轻易确认这确实是J8问题.但是这个代码已经运行了好几年了,在Java 5,6和7中幸存下来.所以很有可能是J8特有的.

异常的原因是未设置EventQueue中的currentEvent.这是通过其setCurrentEventAndMostRecentTimeImpl(AWTEvent e)完成的.但是,如果我在堆栈中追溯,我会在EventQueue:756(Java 1.8.0u45)中看到,在完全调用该方法之后完成调度.

    if (event instanceof ActiveEvent) {
        // This could become the sole method of dispatching in time.
        setCurrentEventAndMostRecentTimeImpl(event); …
Run Code Online (Sandbox Code Playgroud)

java swing nullpointerexception java-8

9
推荐指数
1
解决办法
1297
查看次数

android bundleRelease不签署aab

我已经编写了一个 Android 应用程序,但发布过程的最后一步仍然没有完成。我假设当我运行 gradle bundleRelease 时,它​​会生成我可以在 Play 商店上传的 aab 文件。但是 Play 商店说捆绑包未签名。但是,构建过程说它正在签名:

> Task :app:preBuild UP-TO-DATE
> Task :app:preReleaseBuild UP-TO-DATE
> Task :app:compileReleaseRenderscript NO-SOURCE
> Task :app:generateReleaseResValues UP-TO-DATE
> Task :app:generateReleaseResources UP-TO-DATE
> Task :app:mergeReleaseResources UP-TO-DATE
> Task :app:checkReleaseManifest UP-TO-DATE
> Task :app:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :app:mainApkListPersistenceRelease UP-TO-DATE
> Task :app:processReleaseManifest UP-TO-DATE
> Task :app:bundleReleaseResources UP-TO-DATE
> Task :app:checkReleaseDuplicateClasses UP-TO-DATE
> Task :app:mergeExtDexRelease UP-TO-DATE
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:generateReleaseBuildConfig UP-TO-DATE
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:generateReleaseSources UP-TO-DATE …
Run Code Online (Sandbox Code Playgroud)

android signing release google-play

9
推荐指数
2
解决办法
8994
查看次数

如何使gradle ShadowJar任务也创建其子项的源和javadoc?

我有一个包含8个子项目的gradle项目和一个配置的shadowjar任务来创建一个"all"jar.toplevel项目设置为对其所有子项具有依赖性,这告诉shadowjar要包括什么:

project(':') {
    dependencies {
        compile project(':jfxtras-agenda')
        compile project(':jfxtras-common')
        compile project(':jfxtras-controls')
        compile project(':jfxtras-icalendarfx')
        compile project(':jfxtras-icalendaragenda')
        compile project(':jfxtras-menu')
        compile project(':jfxtras-gauge-linear')
        compile project(':jfxtras-font-roboto')
    }
}

shadowJar {
   classifier = null // do not append "-all", so the generated shadow jar replaces the existing jfxtras-all.jar (instead of generating jfxtras-all-all.jar)
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但maven central拒绝所有jar,因为它没有相关的源和javadocs jar.

我如何告诉gradle还生成源和javadoc?ShadowJar的文档说它应该默认执行此操作.

java gradle shadowjar

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

不可能的Java方法调用行为

我在Java 1.7.0_17和Windows下的Jboss 4.2.3GA中运行的类中有一些代码.代码执行此操作:

Date newNextDate = inBetween(currentDate, nextDate, start);
print("newNextDate=" + newNextDate);
Run Code Online (Sandbox Code Playgroud)

中间做了一个相当简单的比较:

private Date inBetween(Date start, Date end, Date test) {
    ...
    Date contains = t.contains(test) ? test : end;
    print("returning contains=" + contains);
    return contains;
}
Run Code Online (Sandbox Code Playgroud)

确切的实现包含与IMHO无关,因为最终导致java.util.Date被赋值给contains变量.stdout上的输出是:

16:44:56,153 INFO returning contains=Tue Apr 30 23:59:59 CEST 2013
16:44:56,153 INFO newNextDate=null
Run Code Online (Sandbox Code Playgroud)

这就是神秘开始的地方:1.在return语句之前,contains变量的值为2.返回后,收集变量为null

这有可能在世界上如何?

  • 是的,我们已经检查了是否正好调用了这个inbetween方法,否则就不会打印输出.
  • 不,没有具有相同名称的实例变量.但即便如此,两者之间也没有任何事情发生.
  • 不,我们无法调试该过程,因为它只发生在我们的生产服务器上,并且在开发时不可重现.

最奇怪的是,它只出现在这里,在1.000.000行代码中没有其他地方.

java

6
推荐指数
1
解决办法
153
查看次数

与 Maven 相比,Eclipse Java 11 类路径仅不起作用

将旧的 ERP 系统迁移到 JPMS 被证明是一个很大的问题(Java 11 Eclipse 找到了自动模块,Maven 没有),所以我决定首先尝试用 Java 11 简单地替换 Java 8,但通过不引入将所有内容保留在类路径上任何 module-info.java 文件。这实际上进行得很顺利。Maven 编译没有问题,生成的应用程序也从命令行启动。

但是当我将该 Maven 项目导入 Eclipse 2019-03 时,它会抱怨 ao java.xml 包,例如这个导入:

import javax.xml.namespace.QName;
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为 JRE 是模块化的,并且这些类在 java.xml 模块中,我没有包含。但是为什么 Maven 然后正确编译并且应用程序在 J11 下启动?

我怀疑我需要告诉 Eclipse 为这个项目“--add-modules=ALL-SYSTEM”,但我不确定在哪里或如何。我已经尝试将构建路径/库中的所有 JDK/JRE 模块从隐式移动到显式,但这无济于事。

eclipse java-platform-module-system java-11

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