21

Мой XML выглядит следующим образомУстановить вход/выход текста для кнопки в Android Android SDK 4.0?

<com.facebook.login.widget.LoginButton xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/fb_login_button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal" 
android:paddingLeft="15dp" 
android:paddingRight="15dp" 
android:text="CONNECT WITH FACEBOOK" 
android:textColor="@color/white" 
android:textSize="20sp" 
android:textStyle="bold" 
android:background="@drawable/button_fb_login"/> 

и фон drawble XML является

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <shape> 
     <solid android:color="#4e69a2" /> 
     <stroke android:width="3dip" android:color="#4e69a2" /> 
     <padding android:bottom="0dip" android:left="0dip" android:right="0dip" android:top="0dip" /> 
    </shape> 
</item> 

<item> 
    <shape> 
     <solid android:color="#3b5998" /> 
     <stroke android:width="3dip" android:color="#3b5998" /> 
     <padding android:bottom="0dip" android:left="0dip" android:right="0dip" android:top="0dip" /> 
    </shape> 
</item> 

Сейчас в андроида студии предварительного просмотра экрана он показывает, как ожидалось.

enter image description here

Но когда я запускаю его на моем телефоне или эмуляторе, он показывает «Вход с использованием Вконтакте» по умолчанию, как этот

enter image description here

Как получить свой собственный текст на запустить приложение?

ответ

32

использование facebook:login_text и facebook:logout_text

<com.facebook.widget.LoginButton 
      android:id="@+id/login_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      facebook:confirm_logout="false" 
      facebook:fetch_user_info="true" 
      android:text="testing 123" 
      facebook:login_text="LOGIN" 
      facebook:logout_text="LOGOUT" 
      /> 

Если выше не работает, попробуйте добавить следующее в ваши ценности папку

<resources> 
<string name="com_facebook_loginview_log_in_button">LOGIN</string> 
<string name="com_facebook_loginview_log_out_button">LOGOUT</string> 
</resources> 

Обновление: Возможная причина

https://github.com/facebook/facebook-android-sdk/blob/master/facebook/src/com/facebook/login/widget/LoginButton.java#L599

Update 2: Возможное решение

Override эти строки в ваших strings.xml

<string name="com_facebook_loginview_log_out_button">Log out</string> 
<string name="com_facebook_loginview_log_in_button">Log in</string> 
<string name="com_facebook_loginview_log_in_button_long">Log in with Facebook</string> 

Другие строки могут быть найдены here

+0

Thats реализации с более старой версией facebook SDK. Я прямо сказал, что использую SDK 4.0. –

+0

Thanx для ссылки github. –

+0

Thanx приятель, он работал, когда я переопределял эти строки. –

61

Просто нужно изменить атрибут соответственно. См: this

например:

<com.facebook.login.widget.LoginButton 
     xmlns:facebook="http://schemas.android.com/apk/res-auto" 
     facebook:com_facebook_login_text="LOGIN"/> 
+3

это идеальное решение –

+1

что в классе java? –

+0

все еще работает, приятно :) – Shark