我想为我的应用程序提供2个可选主题.为了做到这一点,我定义了一些属性,如下所示:
<attr format="color" name="item_background" />
Run Code Online (Sandbox Code Playgroud)
然后,我创建了两个主题,如下所示:
<style name="ThemeA">
<item name="item_background">#123456</item>
</style>
<style name="ThemeB">
<item name="item_background">#ABCDEF</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这种方法效果很好,允许我轻松地创建和修改几个主题.问题是它似乎只能在Views中使用,而不能在Drawables中使用.
例如,引用布局内View的值可以:
<TextView android:background="?item_background" />
Run Code Online (Sandbox Code Playgroud)
但是在Drawable中做同样的事情并不是:
<shape android:shape="rectangle">
<solid android:color="?item_background" />
</shape>
Run Code Online (Sandbox Code Playgroud)
运行应用程序时出现此错误:
java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
Run Code Online (Sandbox Code Playgroud)
如果不是?item_background
我使用硬编码颜色,它可以工作,但这不允许我使用我的主题.我也试过?attr:item_background
,但同样的事情发生了.
我怎么能这样做?为什么它在Views中有效但在Drawables中无效?我在文档中的任何地方都找不到这个限制......
自从我上次在Eclipse上更新Android SDK以来,我在打开Eclipse时出现以下错误:
错误:解析C:\ Documents and Settings\.android\devices.xml时出错,备份到C:\ Documents and Settings\.android\devices.xml.old cvc-elt.1:找不到元素'd的声明:布局的设备.
有人遇到过这个问题吗?我在Google和Stackoverflow上找不到有关此错误的任何内容.
将Android应用程序上传到市场时,Google Play会根据您的应用程序清单设置确定兼容设备列表,例如:
到目前为止,我发现只有在将我的应用程序上传到Google Play后,才能调整我的清单,以便将我的应用程序用于更多设备.
有没有办法检查设备兼容性,然后再将其上传到市场?
我不明白.如何在项目中添加和使用Espresso?
Espresso网址:https://code.google.com/p/android-test-kit/
如何将此库连接到我的项目?我想在Eclipse中有一个例子.
我有一个List
的Future
每个和需要处理结果Future
当它完成。完成所有期货后,我需要撰写回复。
我创建期货及其处理程序列表的简化代码:
final List<Future<MyResponse1>> futureMyResponse1Lst = new ArrayList<>();
for (final MyObject1 obj1: listOfObject1) {
final Future<MyResponse1> resp1Future = myRestClient.getMyResponse1(obj1);
resp1Future .setHandler(new Handler<AsyncResult<MyResponse1>>() {
@Override
public void handle(final AsyncResult<MyResponse1> event) {
final MyResponse1 resp1= event.result();
handleResponse1(obj1, resp1);
}
});
futureMyResponse1Lst.add(resp1Future );
}
Run Code Online (Sandbox Code Playgroud)
在这个阶段,所有处理程序都会在每个 Future 结果上调用。
但是如果我添加一个CompositeFuture
只有Handler
的CompositeFuture
被称为:
final List<Future> futuresAll = new ArrayList<>();
futuresAll.addAll(futureMyResponse1Lst );
CompositeFuture.all(futuresAll).setHandler(new Handler<AsyncResult<CompositeFuture>>() {
@Override
public void handle(final AsyncResult<CompositeFuture> event) {
// called when all future …
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 openscada 连接到 OPC 服务器。
我已经知道 MatrikonOPC 资源管理器提供的 OPC 服务器程序 ID,但连接不起作用可能是由于 DCOM 配置错误。在更进一步之前,我想尝试通过服务器 CLSID 进行连接。
如何找出 OPC 服务器的 CLSID?
gradle.build
根据Google的说明,我在Android工作室的Android项目中包含espresso时,我有一个不受支持的gradle方法instrumentTestCompile :
https://code.google.com/p/android-test-kit/wiki/Espresso#Espresso_Setup_Instructions.
gradle.build:
dependencies {
instrumentTestCompile files('libs/espresso-1.1.jar',
'libs/testrunner-1.1.jar',
'libs/testrunner-runtime-1.1.jar')
instrumentTestCompile 'com.google.guava:guava:14.0.1',
'com.squareup.dagger:dagger:1.1.0',
'org.hamcrest:hamcrest-core:1.1',
'org.hamcrest:hamcrest-integration:1.1',
'org.hamcrest:hamcrest-library:1.1'
}
Run Code Online (Sandbox Code Playgroud)
完成错误:
Build script error, unsupported Gradle DSL method found: ‘instrumentTestCompile()’!
Possible causes could be:
– you are using Gradle version where the method is absent
– you didn’t apply Gradle plugin which provides the method
– or there is a mistake in a build script
Run Code Online (Sandbox Code Playgroud) android android-studio android-gradle-plugin android-espresso