小编dor*_*ors的帖子

如何获得用户经常交谈的联系人?

是否可以使用ContactsContract获取用户经常交谈的联系人?

我知道我可以使用CallLog ContentProvider并尝试找出答案,但是我想知道是否已经有办法做到这一点。

android calllog contactscontract

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

没有从ActionBarActivity子类获取onActivityResult()

我正在使用Android的支持库(android.support.v7)将ActionBar添加到我的应用程序(我的Activity扩展了ActionBarActivity).

我使用以下代码打开联系人选择器:

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
            contactPickerIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
            startActivityForResult(contactPickerIntent, 999);
Run Code Online (Sandbox Code Playgroud)

但我从未接受过onActivityResult(甚至在选择联系人之后).

我注意到我的startActivityForResult实际上是

android.support.v4.app.FragmentActivity.startActivityForResult(Intent intent, int requestCode)
Run Code Online (Sandbox Code Playgroud)

为什么我没有进入onActivityResult()?

compatibility android android-actionbaractivity

5
推荐指数
0
解决办法
559
查看次数

在Android应用中下载文件的最佳方式

我尝试了解使用Android应用程序下载文件的不同方法的优缺点.

我找到了几种方法:

  1. 自己管理下载(请参阅此代码段)
  2. 使用Android的DownloadManager
  3. 下载使用OKHttp文件中描述的这个帖子

有经验的人是否可以告诉我选择一种方式的原因?

android download android-download-manager okhttp

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

获取junit.framework.AssertionFailedError:使用Unit和Mockito时,[package]中没有找到任何测试

我将以下依赖项添加到我的android项目中:

 // Unit testing dependencies
androidTestCompile 'junit:junit:4.12'
// Set this dependency if you want to use Mockito
androidTestCompile 'org.mockito:mockito-core:1.10.19'
Run Code Online (Sandbox Code Playgroud)

并使用junit4 api创建一个测试(例如,Adder是一个简单的类,它总结了int):

@RunWith(MockitoJUnitRunner.class) 
public class AdderTest {

    @Test
    public void testValidAdd() {
        Adder adder = new Adder();
        assertEquals(adder.add(1,1), 2);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行测试时,我得到:

运行测试测试运行已启动junit.framework.AssertionFailedError:在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:android.test.AndroidTestRunner.runTest(AndroidTestRunner.run:)上的com.test.myapp.AdderTest中找不到测试. 176)在android.app.Instrumentation的android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)$ InstrumentationThread.run(Instrumentation.java:1701)完成

在这里这里读到,但没有任何帮助.

有谁看到我做错了/有什么输入?

java junit android unit-testing mockito

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

在Builder模式类中要进行哪些单元测试

在我的Android项目中,我有一个使用Builder模式构建的RequestParams对象。

我在考虑单元测试,即通过生成的对象检索在Builder中设置的参数。

除此之外,在这样的对象中进行单元测试还有什么有趣的事情吗?

android unit-testing

5
推荐指数
0
解决办法
324
查看次数

Android应用程序设计的PSD文件尺寸和分辨率

我听到并阅读了有关PSD文件的尺寸和设计Android应用程序分辨率的不同内容.不幸的是,我遇到了配置PSD文件的不同方法,我发现这令人困惑.

Android Developer网站中的这个页面说明了很多关于支持屏幕大小的内容,但没有说明如何配置PSD文件:http://developer.android.com/guide/practices/screens_support.html

所以,为了澄清这个问题,我将介绍我采取的方法,我很乐意听到有关它的评论.

我如何设置PSD:

我将PSD的尺寸设置为480x800像素(对于肖像),并根据我想要支持的当前屏幕密度设置分辨率,这意味着:

  • 适用于xhdpi的320像素/英寸
  • 240像素/英寸的hdpi
  • 160像素/英寸为mdpi
  • 120像素/英寸为ldpi
  • 213像素/英寸为tvdpi

(请参阅上面有关屏幕支持的链接,了解使用这些数字的原因)

所以我要做的就是设计,我要为我的应用程序密度最高的(比方说华电国际)和出口,然后我更改分辨率的下一个较低的密度(MDPI)和出口等...

至于启动图标,规定如何在打造图标: http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html#size

我为图标找到的所有模板在PSD中使用了72像素/英寸分辨率.

编辑:

所以要明确我的问题 - 这种方法是否正确?推荐吗?

photoshop android resolution hdpi

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

SharedPreferences的MODE_MULTI_PROCESS是否比MODE_PRIVATE安全

Android文档没有说明任何有关,而MODE_MULTI_PROCESS是安全的(安全明智)与否.

那么,这样安全吗?有没有理由不使用它?

android process sharedpreferences

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

动画可绘制的alpha属性

我想为ViewGroup的背景Drawable的alpha属性设置动画。

我使用view.getBackground()获得了对背景可绘制对象的引用。

然后,我使用以下代码(来自此线程):

    if (backgroundDrawable.getAlpha() == 0) {
            ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(backgroundDrawable, PropertyValuesHolder.ofInt("alpha", 255));
            animator.setTarget(backgroundDrawable);
            animator.setDuration(2000);
            animator.start();
        } else {
            ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(backgroundDrawable, PropertyValuesHolder.ofInt("alpha", 0));
            animator.setTarget(backgroundDrawable);
            animator.setDuration(2000);
            animator.start();
        }
Run Code Online (Sandbox Code Playgroud)

但是动画总是从alpha值0开始。(意味着,当我想将动画设置为0时,它会立即消失,因为它是从0到0进行动画处理)。

有谁知道我该怎么做?

android android-animation

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

Mysqli回滚不起作用

我有一个MySQL数据库,我正在使用mysqli.

由于某种原因,我无法让交易正常运作.如果我打电话$mysqli->rollback(),它不会回滚.

示例代码:

$mysqli->autocommit(false);

$sql = "INSERT INTO myTable (name , color) VALUES ('Dan' , 'red')";

$mysqli->query($sql);

$mysqli->rollback();
Run Code Online (Sandbox Code Playgroud)

结果是另一行被添加到myTable.任何人都可以想到一个原因吗?

php mysql sql mysqli transactions

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

架构域层中没有Android依赖项

我一直在阅读有关Android架构以及在此处此处与Presentation,Domain和Model层分离的内容.

在这两篇文章中,它表示Domain层完全独立于Android框架:

"这个层是一个没有任何android依赖关系的纯java模块.所有外部组件在连接到业务对象时都使用接口."

但是,Android提供了许多实用程序(例如TextUtils,android.Log等...),可以/应该在所有层中使用(在我看来).

测试(使用junit)这类类需要模拟它们(意思是,使用诸如robolectric的lib).

我不理解这种模式吗?或者"独立于Android框架",他们的意思是活动,上下文,服务,BroadcastReceivers等?

java android

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

创建修改多个节点的Firebase Android事务

假设我有一个带有"用户"节点和"宠物"节点的项目.当用户获得宠物时,我想要将宠物的密钥添加到用户的"宠物"节点,并将用户ID添加到宠物的"所有者"节点.

例:

{
    "users":{
        "user1":{
            "pets":{
                "pet1":true,
                "pet3":true
            }
            ...
        }
    },
    "pets":{
        "pet1":{
            "owner":"user1",
            ...
        },
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想确保两个更新都成功阻止状态不一致.

在这里阅读了有关如何使用Firebase事务的信息,但是当我尝试创建修改相关值的事务时(使用dbRef.runTransaction(...)),我收到此DatabaseError错误:

该交易有太多的重试次数

当我在我修改的特定节点上调用runTransaction()时,事务似乎才有效(例如,调用

dbRef.child("users").child("user1").runTransaction(...));
Run Code Online (Sandbox Code Playgroud)

但是,这对我没有帮助,因为我需要联系相关用户和宠物.如何使此交易有效?

android transactions firebase firebase-realtime-database

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