小编Chr*_*Zou的帖子

使用dagger2进行依赖注入时,我可以注入超类吗?

我在我的android应用程序中使用Dagger2 for DI.我发现我必须为每个使用@Inject字段的类编写inject方法.有没有办法我可以注入父类,这样我就不必在每个子类上调用注入?以活动为例.我有一个BaseActivity每个活动都延伸出来的.有没有办法可以在组件中为BaseActivity创建一个注入方法,只需在BaseActivity的onCreate中调用注入,子活动中的@inject字段会自动注入?

java android dependency-injection dagger dagger-2

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

什么是Android类AudioManager中的音频焦点?

AudioManager类有一个方法,abandonAudioFocus()而另一种方法requestAudioFocus().我想知道什么是音频焦点?如果AudioManager对象获得音频焦点或丢失音频焦点会发生什么?

谢谢!

android android-audiomanager

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

摄影中的"抗拒"是什么?

什么是摄影中的"抗拒"?我在Android文档中阅读了android.hardware.Camera.Parameters.setAntibanding()方法中的这个术语.

camera android photography

11
推荐指数
2
解决办法
4万
查看次数

如何在android上完成子活动时获取ActivityOptions.makeScaleUpAnimation的反向动画?

在JellyBean之后,Android SDK包含一个ActivityOptions.makeScaleUpAnimation()API,用于从视图中使用纵向放大动画启动活动.我想知道如何在完成活动时获得一个反向动画,将活动窗口缩小到原始视图?另一个问题是,我可以在使用ActivityOptions.makeScaleUpAnimation()时定义动画持续时间吗?

animation android scale android-activity android-4.2-jelly-bean

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

将 json 数组发布到 Rails 服务器

我想知道如何将 json 数组直接发布到 Rails 服务器。说,

POST '/api/notes_bulk', HTTP/1.1
Content-Type: application/json

[{“content”:”content1”, “title”:”title1”}, {“content”:”content2”, “title”:”title2”}, {“content”:”content3”, “title”:”title3”}, {“content”:”content4”, “title”:”title4”}, {“content”:”content5”, “title”:”title5”}]
Run Code Online (Sandbox Code Playgroud)

我对它做了一些搜索,所有的例子都有某种映射到数组的键。而在我的情况下,json 是其顶层的数组。如何在控制器代码中获取json数据?我注意到 rails 用“_json”键包装这些数据,但是当我访问它时,它说
Unpermitted parameters: _json, ....

arrays json ruby-on-rails

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

Bootstrap:当我对其应用 Bootstrap 样式时,Textarea 的高度会缩小

我有一个 textarea,其高度属性在 CSS 中设置为 100%。它看起来像这样: 原始高度

当我应用引导程序样式(向其添加“表单控件”类)时,我看起来像这样: 在我应用“表单控制”类之后

检查元素后。我发现引导程序将其高度值覆盖为“自动”。CSS 看起来像这样:

textarea.form-control{
    height: auto;
}
Run Code Online (Sandbox Code Playgroud)

但即使我将上面代码中的高度更改为

textarea.form-control {
    height:100%
}
Run Code Online (Sandbox Code Playgroud)

它看起来仍然是这样的: 在此处输入图片说明

请注意,与原始高度相比,高度仍然缩小了一点。

如何将其高度设置为原始高度(如第一张图片中所示)并仍然对其应用 Bootstrap 样式?

html css textarea twitter-bootstrap

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

rxjava interval()在某个事件之后重置时间

我正在制作一个带有RxJava的Android应用程序,在其中一个页面中,我有一个按钮,按下时,页面将刷新.如果用户在此期间没有按下按钮,我还希望每10秒自动刷新一次.但是当用户单击该按钮时,我希望在单击后10秒后发生自动刷新操作.而不是继续自己的10秒间隔.例如,在第二个0,应用程序执行自动刷新,然后在第二个3,用户按下按钮.然后自动刷新应该在第二个13,第二个23等处发生.我知道有一个interval()操作员以一定的间隔发出物品.但似乎没有办法"重置"开始时间.它有点像取消订阅并interval()再次订阅Observable.一段代码就像

Observable<Long> intervalObservable = Observable.inteval(10, TimeUnit.SECONDS)
RxView.click(refreshButton).map(ignored -> 0L)
      .merge(intervalObservable)
      .subscibe(ignore -> performRefresh());
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以"取消合并" intervalObservable,那么我可以onNext将其取消合并然后再合并.但似乎没有.我怎样才能做到这一点?

java android rx-java rx-android

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

android,如何在edittext中绘制虚线

我参考了这个链接:如何在Android中创建虚线/虚线?,并使用DashPathEffect.但这对我不起作用?为什么?我的代码:

public class NoteEditText extends EditText {
    private Paint mPaint;

    public NoteEditText(Context context) {
        super(context);
    }

    public NoteEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        mPaint = new Paint();
        mPaint.setStrokeWidth(1);
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        mPaint.setColor(Color.DKGRAY);
        PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1);  
        mPaint.setPathEffect(effects);
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        int height = this.getHeight();
        int lineHeight = this.getLineHeight();
        int lineNum = height / lineHeight;
        L.l("line count: " + lineNum);
        for (int i = 0; i < lineNum; i++) {
            int …
Run Code Online (Sandbox Code Playgroud)

android draw dotted-line ondraw android-edittext

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

如何使用gradle 2.4运行单个android单元测试.不支持测试过滤

我正在使用gradle来构建我的android项目,并且无法运行单个单元测试.我有几个测试类,其中一个是MockServerTest,我只想在这个类中运行测试方法.
我尝试使用gradle -Dtest.single=MockServerTest test但结果运行了所有测试,包括其他测试类中的测试.
我也试过,gradle test --tests MockServerTest但发生错误说

Test filtering is not supported for given version of junit. Please upgrade junit version to at least 4.6.
Run Code Online (Sandbox Code Playgroud)

但是我在我的gradle文件中使用了junit 4.12

testCompile 'junit:junit:4.12'
Run Code Online (Sandbox Code Playgroud)

我正在使用gradle 2.4 com.android.tools.build:gradle:1.2.3.另外,如何在单个测试类中运行单个测试方法?

顺便说一句,我可以在AndroidStudio中运行单一测试方法,右键单击测试方法并run targetTestMethod()从菜单中选择.但是如何在终端实现这一目标呢?我想AndroidStudio也会触发某个命令来执行此操作.我怎么能看到那个命令是什么?

java android unit-testing gradle android-studio

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

如何通过android中的图像id查看图像

我在MediaStore中获得了图片ID.如何在ID中查看图库中的图像?我目前使用以下代码:

    ContentResolver cr = context.getContentResolver();

    String columns[] = new String[]{  
        Media._ID, Media.DATA
    };
    Cursor cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, Media._ID+"=?", new String[]{id+""}, null);
    if(cursor.moveToNext()) {
        String imagePath = cursor.getString(cursor.getColumnIndex(Media.DATA));
        Uri imageUri = Uri.fromFile(new File(imagePath));

        Intent intent = new Intent();
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.addCategory(android.content.Intent.CATEGORY_DEFAULT);
        intent.setDataAndType(imageUri, "image/*");
        ((Activity)context).startActivity(intent);
    }
Run Code Online (Sandbox Code Playgroud)

它有效,但它太麻烦了.我认为应该有一种更简单的方法来做到这一点.关键是从图像ID获取图像Uri.

java android uri mediastore android-contentresolver

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

使用 Robolectric,如何在运行测试类中的所有测试方法之前和之后初始化和完成内容

我正在使用 Robolectric 进行单元测试。我有一个测试类 say MainActivityTest,它有几种测试方法:

@RunWith(...)
@Config(...)
public class MainActivityTest {
    @Test
    public void testMethod1() {
        //...
    }

    @Test
    public void testMethod2() {
        //...
    }

    // other test methods
}
Run Code Online (Sandbox Code Playgroud)

我想在执行任何测试方法之前只执行一次方法(init方法),并在执行所有测试方法之后执行另一个方法。我怎样才能做到这一点?我知道我可以通过在构造函数中调用init方法来解决第一个问题,但是如何解决第二个问题呢?我知道我可以子类化我的应用程序类并使用该应用程序,但这对我来说有点尴尬,因为我使用的是 AndroidAnnotations 并且我使用的真正应用程序类是最终的,我只想在这个测试类中执行此操作,而不是所有测试类。我想知道是否有更好的方法来做到这一点。

java android unit-testing robolectric

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