小编sha*_*ins的帖子

尝试使用facebook sdk登录时,FacebookCallback.onCancel正在调用

我有一个Android应用程序,我正在尝试使用Facebook的SDK(版本4.1.0)来获取令牌并登录.这是我的代码:

public class LoginActivity extends Activity {
    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        FacebookSdk.sdkInitialize(getApplicationContext());

        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                AccessToken accessToken = loginResult.getAccessToken();
                Log.v(TAG, "Facebook login was successful");
                String authToken = accessToken.getToken();
                // User authToken here:
            }

            @Override
            public void onCancel() {
                Log.v(TAG, "Facebook login was canceled");
            }

            @Override
            public void onError(FacebookException e) {
                Log.e(TAG, "Facebook login failed: " + e.getMessage());
            }
        });

        Button facebook_button = (Button) …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-login facebook-sdk-4.0

19
推荐指数
3
解决办法
8106
查看次数

测试 Jupyter Notebook

我正在尝试想出一种方法来测试多个 Jupyter 笔记本。当在 Github 分支中实现新笔记本并提交拉取请求时,应该运行测试。测试并不那么复杂,它们主要只是测试笔记本是否端到端运行并且没有任何错误,也许还有一些断言。然而:

  • 某些单元格中存在某些需要模拟的调用,例如从数据库下载数据的调用。
  • 笔记本中可能有一些神奇的单元可以运行 pip 命令或其他命令。

我愿意使用任何测试库,例如“pytest”或unittest,尽管pytest这是首选。

我查看了一些用于测试笔记本的库,例如nbmaketreontestbook,但我无法使它们工作。我还尝试将笔记本转换为 python 文件,但神奇单元被转换为get_ipython().run_cell_magic(...)调用,这成为一个问题,因为pytest使用 python 而不是 ipython,并且get_ipython()仅在 ipython 中可用。

所以,我想知道考虑到所有这些,测试 Jupyter Notebook 的好方法是什么。任何帮助表示赞赏。

testing mocking pytest python-unittest jupyter-notebook

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

在Android中扩展视图后,自定义视图子项为null

我正在开发一款Android应用.我有一个自定义视图和布局如下:

<com.hello.view.card.inner.SimpleCardView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/card_simple_linear_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/simple_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

</com.hello.view.card.inner.SimpleCardView>
Run Code Online (Sandbox Code Playgroud)

这是Java类:

public class SimpleCardView extends LinearLayout {
    protected SimpleCard card = null;
    protected TextView textView;

    public SimpleCardView(Context context) {
        super(context);     
        init(context);
    }

    public SimpleCardView(Context context, AttributeSet attrs) {
        super(context, attrs);      
        init(context);
    }

    public SimpleCardView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }

    protected void init(Context context) {
        textView = (TextView)findViewById(R.id.simple_label);
    }

    public void setCard(SimpleCard card) {
        this.card = card;
        textView.setText(card.getMessage());        
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我如何夸大视图(我尝试了以下两个调用):

SimpleCardView …
Run Code Online (Sandbox Code Playgroud)

java android android-custom-view layout-inflater

8
推荐指数
1
解决办法
2156
查看次数

Robolectric测试在Android Studio中运行,但不是通过控制台中的gradle运行

我最近更新了gradle文件中的一些库,因此,当我在控制台中通过"./gradlew clean test"运行时,我的单元测试中的一些(但不是全部)都会失败.但是,当我在Android Studio中运行它们时,我的所有测试都成功通过.

这是我的gradle文件的快照:

apply plugin: 'com.android.application'
apply plugin: 'android-aspectj'
apply plugin: 'android'
apply plugin: 'idea'
apply plugin: 'org.robolectric'


android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 19    
    }

    signingConfigs {
        release {
            ...
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']
            assets.srcDirs = ['src/main/assets']
        }
        test.setRoot("src/test")
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }
        debug {
            ...
        }
    }

    lintOptions {
        abortOnError false
    } …
Run Code Online (Sandbox Code Playgroud)

junit android jmockit robolectric android-gradle-plugin

7
推荐指数
0
解决办法
1048
查看次数

使用gson将嵌套的Java对象转换为json或从json转换

假设我们有以下两个Java类(省略其他类成员):

class Book {
    private String name;
    private String[] tags;
    private int price;
    private Author author;
}

class Author {
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

此外,假设我们有以下json对象:

{"Book": {
    "name": "Bible",
    "price": 20,
    "tags": ["God", "Religion"],
    "writer": {
        "name": "Jesus"
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图找到将Java Book实例转换为json并使用gson返回的最佳方法.为了使示例更有趣,请注意在json中,我想使用"writer"而不是"Author".你能帮忙吗?理想情况下,我希望看到一个完整的实现.

java json gson

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

具有4向滑动手势的自定义Android视图

我正在开发一款显示一系列卡片的Android应用程序.每张卡几乎占据整个屏幕.我希望用户能够通过向左和向右滑动来查看上一张和下一张卡,因为ViewPager工作得很好.

然而,我还希望用户能够在卡上上下滑动以喜欢/不喜欢它.向上/向下滑动手势应根据用户的手势向上/向下移动卡.向上/向下刷卡后,应将其从卡列表中删除.

我在网上搜索解决方案或服装视图.但我发现的大多数解决方案都是针对双向滑动(左/右或上/下).是否有一个很好的解决方案或4方向滑动视图库?

android swipe android-viewpager

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