Кнопка + 1 перестала работать, всегда серая


Обновление: я узнал, что это моя проблема https://code.google.com/p/google-plus-platform/issues/detail?id=704

Некоторое время назад я реализовал кнопку +1 в своем приложении в качестве предпочтения. Он работал хорошо до нескольких недель, и теперь кнопка всегда серая. Если я прикоснусь к нему, я получу "загрузочный" круг, и он никогда не перестанет вращаться.

Я отладил свое приложение и убедился, что вызывается initialize.

Кто-нибудь еще испытывает проблемы с это?

Спасибо.

Мой код предпочтения:

public class PlusOnePreference extends Preference { 

public PlusOnePreference(Context context) {
    super(context);     
}

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

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

@Override
protected void onBindView(View view) {
    super.onBindView(view);
    PlusOneButton plusOneButton = (PlusOneButton)view.findViewById(R.id.plus_one_button);
    plusOneButton.initialize(URL, PLUS_ONE_REQUEST_CODE);
}
}

Мой предпочтительный макет:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.plus.PlusOneButton xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus"
android:id="@+id/plus_one_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:focusable="false"
android:descendantFocusability="blocksDescendants"
plus:size="standard" 
plus:annotation="inline"/>
2 2

2 ответа:

Так что у меня возникли проблемы с этим, потому что значок Google plus one останется серым, как вы и сказали, пока представление предпочтений не будет перезагружено (т. е. навигация в другом месте, а затем возвращение, прокрутка предпочтений с экрана, а затем обратно и т. д.). Проблема в том, что вам нужно позвонить в mPlusOneButton.инициализируйте () в функции onResume () действия, имеющего кнопку Plus One. Так что в принципе, я просто сделал публичный метод в предпочтении, которое делает инициализируйте вызов, а затем вызовите его в функции onResume ().

Деятельность:

Preference preference; 
@Override
public void onResume()
{
    super.onResume();
    if(preference!= null)
    {
        preference.reloadGooglePlusOneButton();
    }

}

В предпочтении:

public void reloadGooglePlusOneButton()
{
    if(mPlusOneButton != null)
    {
        mPlusOneButton.initialize(URL, PLUS_ONE_REQUEST_CODE);
    }
}

Это, кажется, исправлено с помощью Google Play Services 4.1 .