小编hac*_*tsu的帖子

使用Java的Collections.singletonList()?

Collections.singletonList()在Java中有什么用?据我所知,它返回一个包含一个元素的列表.为什么我想要一个单独的方法来做到这一点?不变性如何在这里发挥作用?

这个方法有没有特别有用的用例,而不仅仅是一个方便的方法?

java

147
推荐指数
4
解决办法
14万
查看次数

如何使用拦截器在Retrofit 2.0中添加Headers?

我们的团队决定采用Retrofit 2.0,我正在做一些初步的研究.我是这个图书馆的新手.

我想知道如何使用我们的Android应用程序中的Retrofits 2.0interceptor添加自定义标头.有许多关于在Retrofit 1.X中使用添加标题的教程,但由于API在最新版本中发生了很大变化,我不确定如何在新版本中调整这些方法.此外,Retrofit尚未更新其新文档.interceptor

例如,在以下代码中,我应该如何实现Interceptor该类以添加额外的标头?此外,未记载的Chain对象究竟是什么?什么时候会intercept()被召唤?

    OkHttpClient client = new OkHttpClient();
    client.interceptors().add(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Response response = chain.proceed(chain.request());

            // How to add extra headers?

            return response;
        }
    });

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_API_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
Run Code Online (Sandbox Code Playgroud)

java android retrofit

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

你能用Canvas拍一张页面的"截图"吗?

我有一个页面,我们使用CSS定位一堆元素,并使用JS更改其"顶部和左侧"位置.

我有报道说这些东西都是错位的,但是用户有动机谎称这是"欺骗",所以我不确定他们是否说实话.我正试图找出一种方法来弄清楚他们是否撒谎,并且有一些"证据".

我知道Canvas有一种从图像元素或另一个canvas元素(BitBlt操作的类型)复制图像信息的方法.

是否有可能以某种方式,使用Canvas(或其他东西,Flash,无论如何),拍摄一张页面的"图片"?
同样,我不是想从一个人那里获取信息<image>.我正在尝试复制用户看到的内容,其中包含绝对定位的几个HTML元素(我最关心这些位置)并以某种方式将其上传到服务器.

我明白这不可能做到,但也许我错过了一些东西.

有任何想法吗?

html5 screenshot canvas

67
推荐指数
3
解决办法
5万
查看次数

Android中的ClipData中究竟是什么"label"参数?

根据Android 文档,ClipData使用"label"作为复制数据的一种表示.

ClippedData是一个包含一个或Item实例的复杂类型,每个实例都可以包含一个或多个数据项的表示.为了向用户显示,它还具有标签和图标表示.

然后它进一步解释了"标签"作为某些API文档中剪辑数据的用户可见标签.但是,我仍然对标签的使用感到困惑.

该标签对用户如何可见?我该怎么用?当我调用ClipData工厂方法时,我应该为此标签设置什么newPlainText(CharSequence label, CharSequence text)?例如:

private void copyToClipBoard() {

    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    ClipData clip = ClipData.newPlainText(
            "text label", // What should I set for this "label"?
            "content to be copied");
    clipboard.setPrimaryClip(clip);
    Toast.makeText(AboutActivity.this, "Saved to clip board", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

先感谢您:)

clipboard android clipboardmanager

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

什么是Typescript中的`export type`?

我在Typescript中注意到以下语法.

export type feline = typeof cat;
Run Code Online (Sandbox Code Playgroud)

据我所知,type不是内置的基本类型,也不是接口或类.实际上它看起来更像是别名的语法,然而我无法找到参考来验证我的猜测.

那么上述陈述意味着什么呢?

javascript typescript

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

通过adb启动App而不知道活动名称

从帖子是否可以通过adb shell启动活动?,我们可以通过adb启动Android应用程序

adb shell am start -n yourpackagename/.activityname
Run Code Online (Sandbox Code Playgroud)

但是,如果不知道活动名称,是否可以通过adb启动Android应用程序?例如,通过将android.intent.action.MAIN意图发送到包?也许有些命令是这样的:

adb shell am start -a android.intent.action.MAIN -n packageName
Run Code Online (Sandbox Code Playgroud)

谢谢!!

-Cosmo

android adb android-intent

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

用单个空格拆分字符串

可能重复:
如何在C++中拆分字符串?

我需要用单个空格分割一个字符串并将其存储到一个字符串数组中.我可以使用istringstream实现这一点,但我无法实现的是:

我希望每个空格都能终止当前的单词.因此,如果连续有两个空格,则我的数组中的一个元素应为空白.

例如:

(下划线表示空格)

This_is_a_string.
gets split into:
A[0] = This
A[1] = is
A[2] = a
A[3] = string.

This__is_a_string.
gets split into:
A[0] = This
A[1] = ""
A[2] = is
A[3] = a
A[4] = string.
Run Code Online (Sandbox Code Playgroud)

我该如何实现呢?

c++ string

34
推荐指数
3
解决办法
17万
查看次数

通过命令行列出已安装的sdk软件包

我想通过命令行列出已安装的sdk软件包.(由于某些原因我无法使用GUI)

我做了一些研究,发现了几个命令来列出远程服务器上的可用软件包,但是我找不到任何命令来列出已安装的sdk软件包.

谢谢

android android-sdk-tools

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

Retrofit 2.0如何解析嵌套的JSON对象?

我们的团队决定使用Retrofit 2.0,我正在对这个库进行一些初步研究.如标题中所述,我想通过我们的Android应用程序中的Retrofit 2.0解析一些嵌套的JSON对象.

例如,是一个嵌套的JSON对象,格式为:

{
        "title": "Recent Uploads tagged android",
        "link": "https://www.flickr.com/photos/tags/android/",
        "description": "",
        "modified": "2015-10-05T05:30:01Z",
        "generator": "https://www.flickr.com/",
        "items": [
        {
            "title": ...
            "link": ...
            "media": {"m":"This is the value I want to get:)"}
            "description": ...
            "published": ...
            "author": ...
            "author_id": ...
            "tags": ...
        },
        {...},
        ...
        ]
}
Run Code Online (Sandbox Code Playgroud)

我对items数组中的JSON对象感兴趣.我注意到有一些关于通过Retrofit 1.X解析嵌套JSON对象的帖子,但是最新的Retrofit 2.0 API已经发生了很大变化,这在将它们适应新API时会让人感到困惑.

我想到了两种可能的解决方案:

  1. 编写我自己的JSON转换器工厂,它扩展了Converter.Factory.
  2. 以String类型返回原始响应并自行解析.但根据我的初步研究,从Retrofit 2.0获得原始响应并不容易.Retrofit 2.0似乎坚持将响应转换为某些内容然后再传递给我,而Retrofit并没有提供自己的反应StringConverter.(我可能错了〜)

更新:我们实际上可以通过设置JSONElement为HTTP API接口的pojo并使用Retrofit提供的GSONConverter作为转换器来获取原始响应.

android json retrofit

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

在类构造函数中设置std :: vector

我正在设计一个具有std::vector<int>实例变量的类.我正在使用a,std::vector因为我需要在运行时设置它的大小.以下是我的代码的相关部分:

my_class.h:

#include <vector>
using std::vector;
class MyClass {
    int size;
    vector<int> vec;
}

my_class.cc:

#include "my_class.h"
using std::vector
MyClass::MyClass(int m_size) : size(m_size) {
     vec = new vector<int>(size,0);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,我收到以下错误消息:

g++ -c -Wall my_class.cc -o my_class.o

my_class.cc: In constructor ‘MyClass::MyClass(int):

  my_class.cc:4 error: no match for ‘operator=’ in ‘((MyClass*)this)->My_Class::vec = ((*(const allocator_type*)(& std::allocator<int>())), (operator new(24u), (<statement>, ((std::vector<int>*)<anonymous>))))’

make: *** [my_class.o] Error 1
Run Code Online (Sandbox Code Playgroud)

但是,当我将违规行更改为:

vector<int> temp(size,0);
vec = temp;
Run Code Online (Sandbox Code Playgroud)

它现在编译没有故障,我得到了所需的行为,并可以访问我的矢量

vec[i]  // i having been defined as an …
Run Code Online (Sandbox Code Playgroud)

c++ constructor new-operator stdvector

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