【问题标题】:Iterating array in method (Android)在方法中迭代数组(Android)
【发布时间】:2017-09-13 21:03:16
【问题描述】:

开始使用 java 开发 Android 应用程序,但不知道如何正确迭代。

我有 Google 登录对象:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestServerAuthCode(this.getString(R.string.auth_client_id))
                .requestScopes(scopes)
                .requestEmail()
                .requestProfile()
                .build();

以及范围数组:

// split scope params
   String[] scopes = scope.split("\\+|_|__");

   List<String> list = new ArrayList<>();
   for (int i = 0; i < scopes.length; i++) {
       list.add(new Scope(scopes[i]));
   }

在 Google 登录选项对象中迭代“.requestScopes(scopes)”,因为 .requestScopes() 不允许我输入数组值,只允许输入字符串。

您的帮助可能会帮助我节省额外的半天时间。

【问题讨论】:

    标签: java android arrays loops


    【解决方案1】:

    您可以使用此方法添加多个范围https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInOptions.Builder.html#requestScopes(com.google.android.gms.common.api.Scope,%20com.google.android.gms.common.api.Scope...),例如:

    // split scope params
    String[] scopeStrings = scope.split("\\+|_|__");
    
    Scope firstScope = new Scope(scopeStrings[0]);
    Scope[] scopes = new Scope[scopeStrings.length - 1];
    for (int i = 1; i < scopeStrings.length; i++) {
        scopes[i - 1] = new Scope(scopeStrings[i]);
    }
    
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestServerAuthCode(this.getString(R.string.auth_client_id))
                .requestScopes(firstScope, scopes)
                .requestEmail()
                .requestProfile()
                .build();
    

    【讨论】:

    • 谢谢你,谢尔盖!这正是我所需要的;)
    猜你喜欢
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2023-02-06
    • 2022-01-19
    相关资源
    最近更新 更多