小编Dav*_* T.的帖子

如何快速方便地创建一个元素arraylist

是否有一个实用方法可以在一行中执行此操作?我无法在任何地方找到它Collections,或者List.

public List<String> stringToOneElementList(String s) {
    List<String> list = new ArrayList<String>();
    list.add(s);
    return list;
}
Run Code Online (Sandbox Code Playgroud)

除非我打算在上面放上花哨的轮辋,否则我不想重新发明轮子.

嗯......类型可以T,而不是String.但你明白了.(所有空检查,安全检查......等)

java collections arraylist

290
推荐指数
7
解决办法
25万
查看次数

如何清除gradle缓存?

我正在尝试使用Android Studio,第一次启动时,编译需要45分钟......如果我不退出应用程序,那就没关系 - 每次后续编译/运行应用程序都需要像45秒.

我试图检查一些我的缓存:.gradle/caches我的主目录中有一个文件夹,它就像123 MB大.

.gradle我的项目文件夹中还有一个文件夹...其中一个taskArtifacts就像是200 MB.我害怕只是随意地将它们两者核对.删除文件夹的哪些部分是安全的?

有没有更好的解释为什么我的Android Studio gradle assemble在第一次加载应用程序时将永远运行任务?

我是否还必须清除intellij缓存?

ide android caching intellij-idea gradle

255
推荐指数
7
解决办法
40万
查看次数

什么是重定向URI?它如何应用于OAuth2.0的iOS应用程序?

初学者程序员在这里,请原谅无知和解释会非常好:)

我曾尝试阅读某个OAuth 2.0服务的教程,但我不理解这个重定向URI ...在我的特定上下文中,假设我正在尝试构建一个使用OAuth 2.0进行某些服务的iPhone应用程序.我有一个生成的应用程序ID,但我需要提供某种重定向URI来生成API密钥.

这是一个我应该在某处自己托管的网址吗?顾名思义,我认为重定向URL应该在某个地方"重定向"某人.我唯一的猜测是,这是用户登录服务后重定向到的URL.

但是,即使这个假设是正确的,我也不明白另一件事 - 在我将应用程序发送到浏览器进行用户登录后,我的应用程序如何再次打开?

authentication uri ios oauth-2.0

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

如何让Android Studio将文件识别为源(测试)

我正在尝试为一个Android项目创建Robolectric测试(哎呀,我很乐意甚至让他们进行单元测试)

我有文件夹目录:

MyApp
    - app
        - src
            - main
                - java
                    - com.myapp
                        HelloWorld
            - test
                - java
                    - com
                        - myapp
                            HelloWorldTest.java
Run Code Online (Sandbox Code Playgroud)

问题是HelloWorldTest.java无法运行,因为它没有被识别为源.我如何设置它,以便我可以运行这个类作为测试?????

如果我尝试CMD + SHIFT + T(创建测试的快捷方式),它会提示在与我的源文件相同的目录下创建测试,我不希望这样

junit android intellij-idea gradle android-studio

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

如何使用"instanceof"实现泛型的"equals"方法?

我有一个接受泛型类型的类,我想以equals一种非笨拙的方式覆盖该方法(即看起来很干净且代码量很少的东西,但对于一般的用例).

现在我有这样的事情:

public class SingularNode<T> {
    private T value;

    @SuppressWarnings("unchecked")
    @Override
    public boolean equals(Object other){
        if(other instanceof SingularNode<?>){
            if(((SingularNode<T>)other).value.equals(value)){
                return true;
            }
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我猜,这是非常有缺陷的 - 我正在SingularNode<T>other对象进行强制转换,这可能会引发错误.

另一件事是 - 当我这样做时,if(other instanceof SingularNode<?>)我实际上并没有检查正确的事情.我实际上想要检查类型T而不是类型?.每当我尝试?进入时T,我会得到一些错误:

无法对参数化类型执行instanceof检查SingularNode<T>.请改用表单SingularNode<?>,因为在运行时将删除其他泛型类型信息

我怎么能绕过这个?有办法T.class.isInstance(other);吗?

我想有一个非常难看的黑客解决方案是这样的:

@SuppressWarnings("unchecked")
public boolean isEqualTo(Class<?> c, Object obj){
    if(c.isInstance(obj) && c.isInstance(this)){
        if(((SingularNode<T>)obj).value.equals(value)){
            return true;
        }
    }
    return …
Run Code Online (Sandbox Code Playgroud)

java oop generics equals instance

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

如何使用JSON参数cURL发布?

我不确定这是否可行,但我正在尝试卷曲帖子,但是以json为参数,如下:

curl -X POST 'https://myserver/action?params={"field1":"something","whatever":10,"description":"body","id":"random","__oh__":{"session":"12345678jhgfdrtyui"}}'
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到一些错误curl: (3) [globbing] nested braces not supported at posX.

我该怎么做呢?

post json curl

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

overridePendingTransition过快地显示第二个活动

我有2个活动,我想在两个活动之间创建一个动画过渡,这样两个活动的视图都会向上滑动,就像第二个活动向上推动第一个活动一样.在我使用的第一个活动中:

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class);
FirstActivity.this.startActivity(iSecondActivity);
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);
Run Code Online (Sandbox Code Playgroud)

我的slide.xml看起来像:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromYDelta="0"
        android:toYDelta="-100%p"
        android:duration="2000"
    />
</set>
Run Code Online (Sandbox Code Playgroud)

我的slide2.xml看起来像:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
         android:interpolator="@android:anim/decelerate_interpolator"
         android:fromYDelta="100%p"
         android:toYDelta="0"
         android:duration="2000"
    />
</set>
Run Code Online (Sandbox Code Playgroud)

然而,问题在于,当调用"startActivity"时,第二个活动的视图已经在转换刚开始滑动时呈现.我想看到第一个活动的视图向上滑动......但我看到第二个活动的视图(在第一个活动的视图上呈现)向上滑动.

第二个问题是我看到替换视图是第一个活动的视图.我希望替换视图成为向上推动的第二个活动视图.

这很难解释,所以如果我能更详细地解释一下,请告诉我.对于任何混淆道歉,并感谢您阅读此内容.

PS我正在使用textviews ...我想这会渲染太快?我也在使用摩托罗拉Razr,而不是它应该重要.

animation android transition android-animation android-layout

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

从另一个应用程序打开TestFlight应用程序并深入链接到特定应用程序

如何从我自己的iOS应用程序中找到另一个应用程序的方案并与其进行深层链接?

更具体地说,我想在某些条件下(由我的代码设置)深入链接到Testflight应用程序.我假设这个人安装了Testflight(这可能是一个不好的假设,但我们可以忍受这个假设).

我知道在Android上,您可以查询应用并发送意图以深入链接到其他人的应用.什么是iOS上的等价物?

iphone objective-c deep-linking ios

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

Android - 如何强制子窗口覆盖具有代码的父方法

这是场景 - >想象有3个类,我想做一些类似的事情:

public class GameObject {
    public void updateBounds() {
        // do something
    }
}

public abstract class Enemy extends GameObject {
    public abstract void updatePosition(){ //<-- this will not compile, 
                                    //but this is what i want to do, to force 
                                    //child to override parent method
        updateBounds();
    }

}

public class Minion extends Enemy {
    @Override
    public void updatePosition() {
        super.updatePosition(); // <-- how do i throw an exception if this line
                                // is not called within this method …
Run Code Online (Sandbox Code Playgroud)

java methods inheritance android

9
推荐指数
2
解决办法
2883
查看次数

Android视图比较两个视图是否相等

我在布局上有4个按钮,对于每个按钮,它们都具有以下属性:

android:onClick="numberChosen"

现在,我计划做的是在我的活动中(使用具有4个按钮的布局),我有类似的东西:

public class Blah extends Activity{
    String fileName;
    Button one;
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_number_players_selection_screen);
        one = (Button) findViewById(R.id.number_players_one);
    }


    public void numberChosen(View v){
        if(v == one){                              // <-------- first way
            System.out.println("first way");      
        }
        if(v.getId()==R.id.number_players_one){    // <--------  second way
            System.out.println("second way");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你注意到方法中发生了什么numberChosen,在这两种方式之间,哪一个更好?或者他们都在做同样的事情?

在旁注,是做android:onClick="numberChosen"更好还是更糟,而不仅仅是设置View.onClickListener

android android-layout

8
推荐指数
2
解决办法
8581
查看次数