小编Nic*_*oso的帖子

从没有模型的单个字符串值格式化JSON Body for Retrofit

有没有办法将单个String值(纯文本,而不是json)转换为带注释的JSON主体?我不想创建这么简单的模型.

@POST("foo/{fooId}/bars")
Observable<Void> postBar(@Path("fooId") String styleId, @Body BarModel bar);

class BarModel {
    public String bar;
}
Run Code Online (Sandbox Code Playgroud)

会给我我期望的东西:

{
    "bar" : "hello world"
}
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法来使用注释吗?像这样的东西:

@POST("foo/{fooId}/bars")
Observable<Void> postBar(@Path("fooId") String styleId, @Body("bar") String bar);
Run Code Online (Sandbox Code Playgroud)

android json retrofit2

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

在Android屏幕上安装Recyclerview项目

我有麻烦了!我有这个RecyclerView,在这里我使用GridLayoutManager来实现两列和几行。但问题出在这里:这个RecyclerView中最多只能有8个项目,我想根据屏幕大小来安装它们

到目前为止,我已经知道了:

在此处输入图片说明

使用这段代码:

        Rect rectangle = new Rect();
        Window window = ((Activity)context).getWindow();
        window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
        int statusBarHeight = rectangle.top;
        int contentViewTop =
                window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
        int titleBarHeight= contentViewTop - statusBarHeight;

        final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
                new int[] { android.R.attr.actionBarSize });
        int mActionBarSize = (int) styledAttributes.getDimension(0, 0);
        styledAttributes.recycle();

        int softButtonsHeight = 0;

        DisplayMetrics metrics = new DisplayMetrics();
        ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(metrics);

        DisplayMetrics realMetrics = new DisplayMetrics();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            ((Activity)context).getWindowManager().getDefaultDisplay().getRealMetrics(realMetrics);

            if(realMetrics.heightPixels > metrics.heightPixels){
                softButtonsHeight = realMetrics.heightPixels - metrics.heightPixels;
            }
        }

        ImageView img_Logo = (ImageView)rootView.findViewById(R.id.img_logo_detalhe);

        float …
Run Code Online (Sandbox Code Playgroud)

layout android screen

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

Android自定义按钮

我在android中创建自定义按钮但想避免重复.

我正在尝试创建2个可切换的按钮,这些按钮共享相同的设计但是不同的图像图标而不是文本.

目前我有这个:

在此输入图像描述

我正在使用此xml作为可绘制资源:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <item>
        <shape>
            <padding
                android:bottom="5dp"
                android:left="5dp"
                android:right="5dp"
                android:top="5dp" />
            <corners android:radius="20dp"/>
        </shape>
    </item>

    <item>
        <shape>
            <padding
                android:bottom="5dp"
                android:left="-5dp"
                android:right="5dp"
                android:top="-5dp" />

            <solid android:color="#edebeb"></solid>

            <corners android:radius="20dp"/>
        </shape>
    </item>
    <item>
        <shape>
            <size android:height="150dp" android:width="150dp"></size>
            <padding
                android:bottom="5dp"
                android:left="-5dp"
                android:right="5dp"
                android:top="-5dp" />

            <solid android:color="#fff"></solid>

            <corners android:radius="20dp"/>
        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

如何在不复制xml文件的情况下在每个按钮的中心显示不同的图像?

有没有什么办法可以将值传递给我活动的.java文件中的每个按钮,以便我可以使用它为每个按钮显示不同的图像?

layout android shape

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

我可以在JUnit测试中打印信息消息吗?

我正在运行JUnit测试作为我的Android应用程序测试的一部分.在这种情况下,它只是测试我们依赖的可能经常更改的API的响应(以便验证以后的测试)

当这些测试通过Android studio的输出窗口时,显示没有消息.我们反而喜欢用一条消息说明它正在测试哪个端点(例如"Tests/oranges // segments"),以便消息始终显示为传递和失败测试的第一条消息.

我尝试了android日志Log.println(Log.ASSERT, "...", "...")但是没有在android studio输出中显示.

有没有办法做到这一点?我参考的输出窗口是下面显示的那个

在此输入图像描述

(当测试被标记为忽​​略时,您可以提供要显示的消息.我只是喜欢我的其他测试的相同行为)

junit android

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

有没有办法让一个 Github 问题成为另一个问题的先决条件?

我已经熟悉Github 的基本功能允许在问题/提交/等之间进行引用。然而,这仍然允许我在先决条件问题完成之前关闭一个问题。

我希望能够明确标记先决条件,以便它在列表中显示为已阻止的问题。

我希望它能够从评论中自动工作,就像您可以在提交中编写“Fixes #243”一样,但如果可能的话,我还没有发现如何实现。我已经尝试过以下评论:

  • 块#...
  • 被 # 阻止...
  • 先决条件#...
  • 要求(s/ment)#...
  • 后 #...

有办法做我正在尝试的事情吗?或者除了评论之外还有其他方法可以做同样的事情吗?我在用户界面中没有发现任何相关内容

github

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

Chrome 扩展程序不尊重 browser_specific_settings

W3C 浏览器扩展社区组一直致力于研究不同平台(Chrome/Firefox/Edge/Opera/等)上浏览器扩展之间的兼容性。

他们有一个应该可以安全使用的密钥列表。一个重要的是browser_specific_settings,您可以为不同的浏览器指定专有设置,而不会将清单标记为格式错误。

我需要在这个键下为我的 Firefox 插件添加一个 ID,但是Chrome 不支持这个开箱即用的功能,如果安装了扩展程序会显示错误 -有没有办法告诉 Chrome 忽略这个键?(不要吓唬用户,当它没有被破坏时)

javascript json firefox-addon browser-extension google-chrome-extension

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

为什么使用fresco数据源获取位图是空的

为什么位图返回onNewResultImplnull?

final ImageView imageView = (ImageView) findViewById (R.id.imageView);

ImageRequest request = ImageRequest.fromUri(pic_uri);

ImagePipeline imagePipeline = Fresco.getImagePipeline();
DataSource dataSource = imagePipeline.fetchEncodedImage(request, this);
CloseableReference<CloseableImage> imageReference = null;
dataSource.subscribe (new BaseBitmapDataSubscriber() {
    @Override
    protected void onNewResultImpl(Bitmap bitmap) {
        LogUtils._d("onNewResultImpl....");
        if(bitmap == null) {
            LogUtils._d("bitmap is null");
        }
        imageView.setImageBitmap(bitmap);
    }

    @Override
    protected void onFailureImpl(DataSource dataSource) {
        LogUtils._d("onFailureImpl....");
    }
}, CallerThreadExecutor.getInstance());
Run Code Online (Sandbox Code Playgroud)

android facebook fresco

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

模拟RxJava Observable的正确方法是什么

我有一个返回Observable's用于RxJava的API.为了测试我想避免网络操作,所以计划模拟响应.但是,由于所有响应都必须包含在内,Observable并且from()方法需要一个Future不具体的类型,因此我的模拟类使用匿名包装类进行复杂处理,我认为必须有更好的方法.

这是我有的:

public class MockApi implements MyApi {

    @Override
    public Observable<MyData> getMyData() {
        return Observable.from(new Future<MyData>() {

            @Override public boolean cancel(boolean mayInterruptIfRunning) { return false; }
            @Override public boolean isCancelled() { return false; }
            @Override public boolean isDone() { return false; }

            @Override
            public MyData get(long timeout, TimeUnit unit) throws InterruptedException,
                    ExecutionException, TimeoutException {
                return get();
            }

            @Override
            public MyData get() throws InterruptedException, ExecutionException {
                return new MyData();
            }

        });
    }

    ... …
Run Code Online (Sandbox Code Playgroud)

testing android rx-java

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

浓缩咖啡测试,ImageView包含一个drawable

我从他的中篇文章中实现了Daniele Bottilo的Drawable matcher .

现在我想用它来测试我的图像视图是不是空的.我试过这个:

onView(withId(R.id.image)) 
        .check( matches( not(noDrawable()) ) );
Run Code Online (Sandbox Code Playgroud)

它不起作用,IDE警告我

谓词中没有(... guava.base.Predicate)不能应用于(org.hamcrest.Matcher)

我是Espresso的新手,并没有成功地成功获得Google的答案.在我应该使用的另一个包装中是否有"不",或者我在这里做错了什么?

android hamcrest android-espresso

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

如何让我的 Activity 的单个实例与 backstack 一起工作?

我有一个带有MainActivityChildAaActivity的应用程序ChildBbActivity

MainActivity 可以将我们发送到任一子活动,并且用户可以根据需要在两个子活动之间移动。

但是,其中每一项活动只​​能有一个实例。

问题是,如果我创建子活动singleInstance,那么它们都是单独的任务,切换到另一个应用程序并返回到子活动意味着onBackPress我退出该应用程序(当我应该返回 MainActivity 时)

如果我launchMode按照标准离开,那么我会得到多个子活动实例,尤其是在两个孩子之间来回移动时。

如果我使用singleTop,那么我就会遇到这两个问题

如果我noHistory对孩子们使用,我无法在他们之间自由移动(第一次后按将使我返回到 MainActivity)

使用isTaskRoot()显然不会修复singleInstance应用程序退出错误,因为它始终为真(并且对于其他场景没有用)

我应该如何正确实现我需要的行为?

  • 返回堆栈中每个 Activity 仅有一个实例
  • 全部在同一个任务中/切换应用程序后不要退出 onBackPress

android android-intent launchmode android-activity

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