Articles of android

我怎么知道我的应用程序是否与Robolectric一起运行?

我有一个使用ORMLite / SQLite的Android应用程序,我将Robolectric与JUnit 4结合使用,允许我在Android Studio和Jenkins构建服务器上运行unit testing。 通常我会在我的测试中,在设置中设置测试数据,然后针对它运行我的测试场景但是当我尝试这样做时,我开始遇到问题和exception,这似乎与被锁定的文件有关,而且似乎是是别人有过的问题…所以我到目前为止所做的是使用我的数据库助手中的create database方法创建一些测试期望存在的虚拟数据。 问题是我的应用程序现在需要插入一个真正的数据库,我不能让它在运行时设置虚拟数据。 如果在我的数据库帮助程序类中有一种方法可以检测代码是在设备上还是在Robolectric中执行?

如何让我的ListView滚动?

我有一个非常复杂的View构建,作为其中的一部分,我在ScrollView中的LinearLayout内部有一个ListView(还有更多的组件,但在这个问题上它们并不重要)。 现在整个活动滚动得很好,但ListView的高度有限,当它里面的项目超过高度时,我的屏幕消失了。 我试图将ListView放在它自己的ScrollView中,但这不起作用。 当我尝试在ListView上滚动时,选择了主ScrollView并且我的屏幕滚动而不是ListView。 我的问题可能听起来很简单,但我无法解决这个问题……是否有可能使ListView可滚动? 相关的XML:

Android,在库项目中提供应用程序特定常量的最佳方法?

我正在为许多Android应用程序创建一个库项目。 这些应用程序都有一些我希望包含在库项目中的常用function,但库项目function需要使用特定于应用程序的常量 所以我正在寻找一种方法来为库函数提供常量的名称,并允许每个应用程序定义它们 特定应用程序常量的示例以及它在库项目中的使用方式 public class AppConstants { public static final long APP_ID = 6;//Needs to be set for each app } public static long getCurrentAppId(Context context) { return getLongPreference(context, CURRENT_APP_ID_KEY, AppConstants.APP_ID); } 这只是需要为每个应用程序为大量库函数定义的大约60个常量的一个示例 显然我通常只导入/包含项目特定的app_constants.java文件,但这在库项目文件中是不可能的,因为它没有关于特定应用程序的线索(正确地说是这样) 那么让每个特定应用程序覆盖常量的最佳方法是什么? 更新我花了很长时间来决定哪些极好的答案我提供了最适合我的需求(谢谢大家)最后我选择了xml解决方案。 我不是特别喜欢它,因为它混乱了我的应用程序资源,我认真考虑使用接口解决方案,但xml解决方案确实很好用

在图像视图上设置涟漪效果

得到以下图片视图: 如果我没有为图像视图设置位图,则Ripple工作得很好。 但是一旦我设置了这样的位图,涟漪效应就消失了: ImageView iv=((ImageView)rootView.findViewById(R.id.header)); iv.setImageBitmap(myBitmap); 这是我的ripple.xml: 我猜这个位图隐藏了涟漪效应,我怎样才能让它可见? 已经尝试过: 将android:background更改为android:foreground,这不起作用。 在此顶部配置另一个透明ImageView,但由于它是透明的纹波未显示。 有任何想法吗? 我见过Lollipop Contacts也是这样做的。

当进度条在android中旋转时如何停止更改方向

我有一个注册屏幕,用户输入所有注册详细信息,当用户点击“注册”按钮时,我显示进度条(进度条开始旋转),然后将用户带到主屏幕。如果用户旋转当进度条旋转时,进度条被取消。我希望方向不会从potrait变为横向,反之亦然,当进度条可见时(意味着它正在旋转)。进度条如何停止方向改变旋转?任何帮助将不胜感激。

有没有办法在Android上的TextView中添加内部阴影?

我想在textview上做一个inner shadow ,但我在网上找不到任何这样的例子。 有没有办法在Android上这样做? 我知道这些属性: android:shadowColor android:shadowRadius android:shadowDx android:shadowDy 我错过了有用的东西吗?

在Android中更改Switch的颜色

我正在尝试更改Android中交换机的颜色。 我意识到我需要新的9件。 我去了http://android-holo-colors.com/并选择了我的颜色并选择了(Switch Jelly Bean)。 要使用Switch Jelly Bean,我必须使用: https : //github.com/BoD/android-switch-backport 。 要将它导入我的项目,我必须添加: @style/Widget.Holo.CompoundButton.Switch 到我的样式,然后在xml我必须像这样使用开关: 现在用开关的一切工作正常。 接下来,我从android全息颜色生成器输出所有内容并将其放入正确的文件中: drawable(2个选择器文件) drawable-hdpi(9个补丁文件) drawable-xhdpi(9个补丁文件) drawable-xxhdpi(9个补丁文件) 然后我添加到我的xml: 但它仍然是原始的蓝色。 我相信我正在做的一切正确。 一切都编译(xml,java)。 注意:我也在我的java中导入org.jraf.android.backport.switchwidget.Switch 。 有任何想法吗?

广播接收器无法在Android 6.0 Marshmallow中运行

我刚刚将我的Nexus 5更新为android 6,直到现在我的应用程序工作正常,但现在广播接收器无法正常工作。 新版本有什么变化吗? 这是我尝试过的代码,用于以前的版本,但不是在marshmallow中 – Android Manifest 广播接收器 public String TAG =”someClass”; private static String ACTION_SMS_RECEIVED = “android.provider.Telephony.SMS_RECEIVED”; public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equalsIgnoreCase(ACTION_SMS_RECEIVED)) { Log.d(TAG, “Received…”); } } 服务 Broadcast_receiver broadcast_receiver = new Broadcast_receiver(); IntentFilter filter1 = new IntentFilter(); filter1.addAction(“android.provider.Telephony.SMS_RECEIVED”); registerReceiver(broadcast_receiver, filter1); 同样,PHONE_STATE的广播接收器也不起作用。

未调用Android View onSaveInstanceState

我正在使用CustomView,它扩展了一些像FrameLayout这样的Android视图。 在我的布局中,我使用带有自定义PagerAdapter的ViewPager。 问题是当片段重新附加到ViewPager / Activity时,我的View 没有恢复它的状态 。 例如,我有三个片段,如果我滑到最后一个片段然后回到第一个片段,ScrollView就不是我允许的了:它返回默认值,在顶部。 我知道使用PagerAdapter,并非所有片段在同一时间都是活动的,基本上是+ 1 / -1。 我找不到为什么我的View.onSaveInstanceState()没有被调用,所以为onRestoreInstanceState。

ResourcesCompat.getDrawable()vs AppCompatResources.getDrawable()

我对这两个API有点困惑。 ResourcesCompat.getDrawable(Resources res,int id,Resources.Theme theme) 返回与特定资源ID关联的可绘制对象,并为指定的主题设置样式。 将根据底层资源返回各种types的对象 – 例如,纯色,PNG图像,可缩放图像等。 在API级别21之前,将不应用主题,并且此方法只调用getDrawable(int)。 AppCompatResources.getDrawable(Context context,int resId) 返回与特定资源ID关联的可绘制对象。 此方法支持在没有平台支持的设备上对矢量和animation矢量资源进行充气。 题 这两个类之间有什么显着差异(除了矢量膨胀)? 我应该选择哪一个?为什么?