小编Won*_*abo的帖子

自动下载 Gradle 项目中的源代码

在 Maven 项目中,有一个选项可以自动下载所有库的源代码(和 javadoc)。对于 Gradle 项目,我没有找到任何选项,只需打开一个类并单击“在 Internet 中搜索”。如果你有很多库,这会很烦人。有没有办法自动附加来自互联网的资源(maven repo)?

intellij-idea gradle

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

解决运算符[]的模糊重载

我有这门课:

class MyClass {

    public:

        int operator[](const std::string&);
        const std::string& operator[](const int&) const;

    ...
};
Run Code Online (Sandbox Code Playgroud)

但是,如果我调用第二个运算符w/const literal 0,它的工作量很大:

MyClass myclass;
std::cout << myclass[0] << std::endl;
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

In function 'int main()':
ambiguous overload for 'operator[]' in 'myclass[0]'
note: candidates are:
note: const int MyClass::operator[](const string&)|
note: const string& MyClass::operator[](const int&) const
Run Code Online (Sandbox Code Playgroud)

我想我明白了什么情况(0可以是字符串或int?),但我的问题是:有没有办法解决这个问题并保持运算符重载?

c++ operator-overloading operators

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

全局运算符和多态性

我有两个班,两个全球friend oparator<<.

class A {
    friend std::ostream& operator<<(std::ostream& o, const A &a);
};

class B: public A {
    friend std::ostream& operator<<(std::ostream& o, const B &b);
};
Run Code Online (Sandbox Code Playgroud)

如果我像这样使用它,一切正常,B操作符的版本被调用:

B b;
std::cout << b;
Run Code Online (Sandbox Code Playgroud)

但是如果我使用多态,那么A版本会被调用,尽管动态类型是B:

A* b = new B();
std::cout << *b;
Run Code Online (Sandbox Code Playgroud)

一种解决方案是铸造:

std::cout << static_cast<B&>(*b);
Run Code Online (Sandbox Code Playgroud)

但是有没有更简单或更优雅的解决方案呢?

c++ polymorphism operators

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

在 RecyclerView 中使用动画检查更改 CheckBox

如果用户单击CheckBox,它会运行一个非常好的动画(在 Lollipop 上)。

但是,如果我以myCheckBox.toggle()编程方式调用,它不会运行动画,而是立即显示新状态。有没有办法在以编程方式更改选中状态时运行平滑动画?

编辑:事实证明,当这是一个RecyclerView项目时,它不会运行动画。否则运行...

EDIT2:问题在于项目动画师。它似乎在开始自己的动画之前杀死了所有其他动画。我猜这个确切的行会导致问题。

checkbox android android-recyclerview

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

使用Mockito Matchers.any()和android.support.annotation.IntDef自定义注释

我正在尝试编写一个Junit测试,它将验证是否调用了以下方法:

public long executeRequest(@RequestCodes.Code.RequestAnnotation int requestCode, Object requestInformation, RequestListener requestListener) {

    boolean success = false;

    ... do stuff ...

    return success ? 1L : -1L;

}
Run Code Online (Sandbox Code Playgroud)

在测试中使用:

Mockito.when(mockedRequest.executeRequest(Matchers.any(RequestCodes.Code.RequestAnnotation.class), Matchers.any(RequestWrapper.class), Matchers.any(RequestListener.class))).thenReturn(1L);
Run Code Online (Sandbox Code Playgroud)

RequestCodes.Code.RequestAnnotation类是一个基本的indef接口,使用int来标识使用开关进行的调用.非常喜欢这个.

Matchers.any(RequestCodes.Code.RequestAnnotation.class)不会在这里工作,我都试过Matchers.any(),Matchers.anyInt(),Matchers.isA(RequestCodes.Code.RequestAnnotation.getClass())(以及别的来考虑),但没有成功.

任何建议将不胜感激.

junit android unit-testing mockito

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

一起使用共享元素过渡和自定义动画

我想使用共享元素过渡,但与此同时,我还想要一个通用的淡入淡出动画。

目前我有这个代码:

Transition transition = TransitionInflater.from(getContext()).inflateTransition(R.transition.my_transition);

myFragment.setSharedElementEnterTransition(transition);

getFragmentManager().beginTransaction()
        .setCustomAnimations(R.anim.fade_out, R.anim.fade_in)
        .replace(R.id.content, myFragment).addToBackStack(null)
        .addSharedElement(sharedElement, "price")
        .commit();
Run Code Online (Sandbox Code Playgroud)

问题是我的自定义动画没有运行。如果我删除共享元素过渡,则自定义动画将起作用。有没有办法同时使用它们?提前致谢!

android android-animation android-fragments android-transitions

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

@WorkerThread 注释处理器

我真的很喜欢 android.support.annotations 库中提供的 @WorkerThread/@UIThread/@AnyThread 注释。我想在 java 项目中实现类似的东西。但是,我无法找到注释处理器的来源。有谁知道在哪里查看或有关于如何实施的建议?

java android

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

用Jackson反序列化为Map &lt;String,String&gt;

我有以下JSON:

{
  "parameters": [{
      "value": "somevalue",
      "key": "somekey"
    },
    {
      "value": "othervalue",
      "key": "otherkey"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,此响应的约定保证键是唯一的。

我想将其反序列化为以下类:

public class Response {

  public Map<String, String> parameters;

}
Run Code Online (Sandbox Code Playgroud)

我如何使用Jackson库来做到这一点?

java json jackson

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

如何获取连接的Wifi网络的网络对象?

我们可以像这样获取有关当前Wifi网络的信息:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();
Run Code Online (Sandbox Code Playgroud)

但是我没有明显的方法来获得Network与此相关的对象WifiInfo。

我们还可以遍历所有Networks:

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

for (Network network : connectivityManager.getAllNetworks()) {
    NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network);
    String extraInfo = networkInfo.getExtraInfo();

    if (extraInfo.equals(connectionInfo.getSSID())) {
        return network;
    }
}
Run Code Online (Sandbox Code Playgroud)

但自Android 9.0起extraInfo,即使我有位置许可,该属性也为空。

有没有安全的方法来获取Network与连接的wifi网络相关的电流?

android

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

ActionBar menuitem按下了背景颜色

我用ActionBarSherlock创建了一个操作栏.我想设置操作栏的样式,这样当我按下menuitem(从溢出中弹出的下拉项目)时,menuitem背景应该会改变颜色.(现在它改为默认的全息蓝色,我希望它是另一种颜色).

经过长时间的googleing和测试,我想到了这个:

themes.xml:

<style name="AppTheme" parent="Holo.Theme">

    <item name="android:popupMenuStyle">@style/PopupMenuStyle</item>
    <item name="popupMenuStyle">@style/PopupMenuStyle</item>
</style>


<style name="PopupMenuStyle" parent="@style/Widget.Sherlock.PopupMenu">
    <item name="android:dropDownSelector">@drawable/menu_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)

menu_selector.xml:(喜欢abs__list_selector_holo_dark.xml)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_window_focused="false" android:drawable="@android:color/transparent" />

    <item android:state_focused="true"  android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/abs__list_selector_disabled_holo_dark" />
    <item android:state_focused="true"  android:state_enabled="false"                              android:drawable="@drawable/abs__list_selector_disabled_holo_dark" />
    <item android:state_focused="true"                                android:state_pressed="true" android:drawable="@color/AppRed" />
    <item android:state_focused="false"                               android:state_pressed="true" android:drawable="@color/AppRed" />
    <item android:state_focused="true"                                                             android:drawable="@drawable/abs__list_focused_holo" />
    <item                                                              android:drawable="@color/AppRed" />
</selector>
Run Code Online (Sandbox Code Playgroud)

不幸的是,背景仍然变为蓝色而不是红色.我在这里失踪了什么?

android android-menu android-actionbar android-styles

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