我从ActionBarSherlock切换到ActionBarCompat(支持库v7).经过一些调整后,现在几乎所有东西都运转良好.
但是我在ActionBar中遇到了SearchView问题.当它被扩展时(实际上,它总是在我的Activity中扩展),它占用了所有空间并且不尊重设置为始终显示的其他Action Items的空间(showAsAction ="always").
要模拟问题,请使用以下命令:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_buscar"
app:actionViewClass="android.support.v7.widget.SearchView"
android:icon="@drawable/abc_ic_search"
app:showAsAction="always"
android:title="@string/buscar"/>
<item android:id="@+id/tentar_novamente"
android:title="@string/tentar_novamente"
android:icon="@drawable/acao_tentar_novamente"
app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)
在活动中:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.busca_action_menu, menu);
searchMenuItem = menu.findItem(R.id.menu_buscar);
searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
searchView.setIconifiedByDefault(false);
searchView.setQueryHint(stringBusqueArtistasMusicasEAlbuns);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
这是android 4.3中的结果:

这是android 2.3的结果(动作项甚至没有出现):

我使用时会出现同样的问题:
setSupportProgressBarIndeterminateVisibility(true);
Run Code Online (Sandbox Code Playgroud)
进度指示器在Android 4.3中显得非常奇怪,并且不会出现在Android 2.3中.
ActionBarSherlock使用相同的代码按预期工作.当有一些操作项时,SearchView用于减小其宽度以为操作项提供空间.
更新:
我在Android的Bug跟踪器中发布了一个问题:https://code.google.com/p/android/issues/detail? id = 58251&thanks = 58251&ts = 1375191632
如果您遇到同样的问题,请关注此问题.
更新:
我试图将操作项放在SearchView之前,这样他们的项就会出现.

但是,setSupportProgressBarIndeterminateVisibility(true)仍未显示进度条.
android actionbarsherlock android-actionbar android-actionbar-compat
我正在创建一个动画,以便在用户进入特定活动时显示.基本上,此活动向上滑动以显示并向下滑动以关闭.我正在使用overridePendingTransition来实现这个动画.
但幻灯片有一个丑陋的效果.它可以在屏幕截图中看到:

查看正在关闭的活动上显示的灰色矩形.它为什么显示?
我认为这将是Android的android.R.id.content视图,所以我试图改变它的背景,但它没有用.
我正在使用ActionBarSherlock,代码如下所示:
slide_in_from_bottom.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:duration="@android:integer/config_mediumAnimTime"/>
Run Code Online (Sandbox Code Playgroud)
slide_out_to_bottom.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
Run Code Online (Sandbox Code Playgroud)
nothing.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="0" android:fromAlpha="1" android:toAlpha="1"/>
Run Code Online (Sandbox Code Playgroud)
开始活动:
Intent intent = new Intent();
intent.setClass(getActivity(), PlayerActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.nothing);
Run Code Online (Sandbox Code Playgroud)
关闭活动:
@Override
public void onBackPressed() {
finish();
overridePendingTransition(R.anim.nothing, R.anim.slide_out_to_bottom);
}
Run Code Online (Sandbox Code Playgroud) 我有一个非常奇怪的问题.我有一个常见的片段,几乎在我的应用程序的每个活动中都添加了.此片段显示了一个小版本的播放器栏.所以它会收听一些广播以更新当前音乐的名称,并有一些控制,如播放/暂停.
就像我说的,我几乎在我的应用程序的每个活动中都添加了这个片段,我从来没有遇到任何问题.但现在,我需要创建一个没有UI且保留的新片段(setRetainInstance(true)).添加这个新片段后,一切似乎都没问题.直到我旋转设备并且活动崩溃.
所以,查看日志,我看到以下异常:
07-05 14:10:23.818: ERROR/AndroidRuntime(25922): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.soongz/com.soongz.ui.PlaylistActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3576)
at android.app.ActivityThread.access$800(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:313)
at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
at …Run Code Online (Sandbox Code Playgroud) 好吧,我正在迁移我的Android项目以使用Clean Architecure:
https://github.com/android10/Android-CleanArchitecture
这意味着我的部分代码在域模块中(纯Java,不依赖于Android).对于这个项目,我使用的是Dagger 2,它使用注释处理器生成源代码(在编译期间).
我的项目有以下Gradle配置:
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
configurations {
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
runtimeClasspath += configurations.provided
}
test {
compileClasspath += configurations.provided
runtimeClasspath += configurations.provided
}
}
dependencies {
def domainDependencies = rootProject.ext.domainDependencies
def domainTestDependencies = rootProject.ext.domainTestDependencies
provided domainDependencies.daggerCompiler
provided domainDependencies.javaxAnnotation
compile domainDependencies.dagger
compile domainDependencies.rxJava
compile domainDependencies.joda
testCompile domainTestDependencies.junit
testCompile domainTestDependencies.assertJ
testCompile domainTestDependencies.mockito
testCompile domainTestDependencies.jMockLegacy
testCompile domainTestDependencies.commonsCsv
}
Run Code Online (Sandbox Code Playgroud)
在我的测试源中,我创建了接口TestComponent,并且Dagger用于生成DaggerTestComponent.当我尝试通过命令行或Android Studio构建我的项目时,我收到无法找到符号的编译错误,然后:任务':domain:compileTestJava'的执行失败.
我试图用'compile'和'testCompile'来改变'提供'.它仍然无法正常工作.
奇怪的是,在compileTestJava失败后,我可以在domain/build/classes/test中 …
好吧,我有一个奇怪的错误.当我通过IntelliJ运行我的测试时,它没有任何问题.但是如果我使用sure-fire插件或'mvn clean test'命令运行它,我会得到以下异常:
shouldLoadMoreDataOnScrollBeyondTheThreshold(br.com.cybereagle.androidwidgets.listener.EndlessScrollListenerTest) Time elapsed: 2.73 sec <<< ERROR!
java.lang.RuntimeException: Stub!
at junit.framework.Assert.assertTrue(Assert.java:6)
at br.com.cybereagle.androidwidgets.listener.EndlessScrollListenerTest.shouldLoadMoreDataOnScrollBeyondTheThreshold(EndlessScrollListenerTest.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:246)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:181)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:103)
at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
@RunWith(RobolectricTestRunner.class) …Run Code Online (Sandbox Code Playgroud) 我有一个 DataFrame,我愿意将它写入 PostgreSQL 数据库。如果我只是使用“覆盖”模式,例如:
df.write.jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)
Run Code Online (Sandbox Code Playgroud)
重新创建表并保存数据。但问题是我想将 PRIMARY KEY 和 Indexes 保留在表中。所以,我想要么只覆盖数据,保留表架构,要么在之后添加主键约束和索引。任何一个都可以用 PySpark 完成吗?或者我是否需要连接到 PostgreSQL 并执行命令来自己添加索引?
我有一个CDI Managed Bean(一个用@Named注释的bean,用于JSF),它注入了一个Stateful Session Bean.这个会话bean就像一个服务,它有实体管理器(用@PersistenceContext(type = PersistenceContextType.EXTENDED)注释)并公开来操作某些实体的方法.这些实体位于托管bean上,即ConversationScoped.然后,JSF调用托管bean的方法,托管bean调用"service"(有状态会话bean)的某个方法.我不知道这是不是最好的设计,但它运作良好.但是有一个实体有一些需要用LAZY获取的集合.第一次打开页面时,它似乎运行良好,但是当我尝试单击任何按钮或执行任何操作时,我都有LazyInitializationException.有人有任何提示吗?我不知道有什么不对劲.我把会话bean放在有状态,扩展持久化上下文.此会话bean在具有实体的托管bean中注入.为什么它会抛出这个例外?如何关闭实体经理?
这是陷入困境的实体的代码:
@Entity
public class ParametrosVingentes implements Serializable {
public static final String ID = "settings";
private static final long serialVersionUID = 1L;
@Id
private String id;
@OneToOne
private ValorHora valorHora;
@OneToMany
@JoinTable(
name="BuscaSistecVingentes",
joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
inverseJoinColumns = @JoinColumn( name="agendamento_fk")
)
private List<AgendamentoBuscaSistec> agendamentosBuscaSistec;
@OneToMany
@JoinTable(
name="ExportacaoZeusVingentes",
joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
inverseJoinColumns = @JoinColumn( name="agendamento_fk")
)
private List<AgendamentoExportacaoZeus> agendamentosExportacaoZeus;
@OneToMany
@JoinTable(
name="ImportacaoZeusVingentes",
joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
inverseJoinColumns = @JoinColumn( name="agendamento_fk")
)
private …Run Code Online (Sandbox Code Playgroud) entitymanager stateful-session-bean lazy-initialization jsf-2 ejb-3.1
我知道如何制作重复位图的背景图案.我还看到了一种使用Canvas组合两个位图的方法.但我想制作一个重复的位图与渐变可绘制组合来制作背景.我有一个.png文件,它是部分透明的,我想重复它与渐变drawable(普通渐变XML).
这是PNG:http://subtlepatterns.com/? p = 1203
有没有办法做到这一点?
提前致谢.
嗯,我觉得很难解释,所以我已经做了一个数字来表明这一点.

正如我们在该图中所看到的,有6个时间间隔.每个人都有自己的体重.不透明度越高,重量越高.我想要一个算法来找到具有最高总重量的区间.在该图的情况下,它是间隔5和6的重叠,其是具有最高不透明度的区域.
android ×6
algorithm ×1
apache-spark ×1
background ×1
dagger ×1
dagger-2 ×1
drawable ×1
ejb-3.1 ×1
gradle ×1
java ×1
jsf-2 ×1
junit ×1
maven ×1
pyspark ×1
robolectric ×1