小编rak*_*yap的帖子

rxandroid要求在ui线程上运行,即使它是在AndroidSchedulers.mainThread()上订阅的

我写了一个订阅者,当谷歌地图被触发时会OnCameraChangeListener被触发.

Observable.create(new Observable.OnSubscribe<LatLng>()
    {
        @Override
        public void call(Subscriber<? super LatLng> subscriber)
        {
            if (!subscriber.isUnsubscribed())
            {
                mMap.setOnCameraChangeListener(cameraPosition ->
                        subscriber.onNext(cameraPosition.target));
            }
        }
    }).subscribeOn(AndroidSchedulers.mainThread())
            .observeOn(AndroidSchedulers.mainThread())
            .onErrorResumeNext(Observable.<LatLng>empty())
            .debounce(1, TimeUnit.SECONDS)
            .subscribe(position -> {
                if (position.latitude != 0 && position.longitude != 0)
                {
                    updateLocationMarker(position);
                }
            });
Run Code Online (Sandbox Code Playgroud)

我正在更新位置标记,如下所示:

private void updateLocationMarker(LatLng center)
{
    locationMarkertext.setText("Lat:" + center.latitude + " Long:" + center.longitude);
    //locationMarkerLayout.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

即使我的代码说要运行AndroidSchedulers.mainThread()我也会收到此错误:

引发者:rx.exceptions.OnErrorNotImplementedException:只有创建视图层次结构的原始线程才能触及其视图.

有人可以帮我理解我的方法有什么问题

android rx-java

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

Google始终返回过期的ID令牌(JWT)

根据https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInApi.html#constant-summary

如果使用ID令牌到期时间来确定会话生存期,则应在每次API调用应用程序服务器之前调用silentSignIn来检索刷新的ID令牌.

我试图通过调用silentSignIn来获取新的令牌.但是,我总是得到相同的过期ID令牌.有人可以帮我指出正确的文档,说明如何强制刷新以获取新令牌.我的代码没什么特别的.它几乎与谷歌样本中的相同.

private void buildGoogleApiClient()
{
    // Configure sign-in to request the user's ID, email address, and basic profile. ID and
    // basic profile are included in DEFAULT_SIGN_IN.
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            //.requestServerAuthCode(serverClientId)
            .requestIdToken(SERVER_ID)
            .requestScopes(new Scope(Scopes.PLUS_LOGIN))
            .requestEmail()
            .build();

    // Build a GoogleApiClient with access to GoogleSignIn.API and the options above.
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, this)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();
} 
Run Code Online (Sandbox Code Playgroud)

我按上述方法构建了API,当用户点击使用google按钮登录时,我执行以下操作

OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
        if (opr.isDone())
        {
            // If the user's cached credentials are valid, the …
Run Code Online (Sandbox Code Playgroud)

android google-oauth

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

什么是MVNrepository中的*.asc文件

对于存储库中的每个文件,MVNrepository中都提供.asc文件.这些文件用于什么?

例如,谷歌的番石榴(http://central.maven.org/maven2/com/google/guava/guava/19.0/)主要有三个jar文件和一个pom文件,每个文件都附有一个asc文件.

maven

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

对话框泛型函数 - 根据用户按钮返回布尔值

我想写一个函数,它会显示一个警告对话框,根据点击的按钮返回布尔值

private Boolean ShowWarningMessageBox(String Title, String message)
{
    boolean returnValue = false;

    AlertDialog.Builder builder = new AlertDialog.Builder(
            getApplicationContext());

    builder.setTitle(Title);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int id)
        {
            returnValue = true;
        }
    });

    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener()
            {
                public void onClick(DialogInterface dialog, int id)
                {
                    dialog.cancel();
                    returnValue = false;
                }
            });

    builder.show();

    return returnValue;
}
Run Code Online (Sandbox Code Playgroud)

我已经编写了上面的函数,但问题是,Inner类将无法访问returnValue变量,因为它不是final.但是让它成为最终的并不符合我的目的.

我是ac#developer,我正在尝试在android中实现类似下面的内容

private DialogResult ShowWarningMessageBox(string errorMessage)
    {
        DialogResult result = MessageBox.Show(errorMessage,
                 Resources.WarningCaption.ToString(),
                 MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk,
                 MessageBoxDefaultButton.Button1);

        return result;
    } 
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

android android-dialog

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

在recyclerview中显示图像的占位符

我试图显示一个RecyclerView,它最初在从API获取数据之前加载骨架视图.在下面的示例中,正在显示简单的图像视图和文本.

<android.support.v7.widget.CardView
    android:id="@+id/cv_store_offer_display"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <ImageView
            android:id="@+id/img"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:scaleType="fitXY"/>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Foo FOO"/>

        </LinearLayout>
    </LinearLayout>

</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

我想知道如何在我的Recyclerview加载图像/文本之前显示视图.我正在使用Picasso来加载图像.mikepenz FastAdapter用于显示RecyclerView内容.

我还尝试使用/sf/answers/863951791/中提到的进度条.但即使可见性设置为可见,也从未显示进度条.

android android-recyclerview

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