2015-04-17 17 views
8

Tôi đang cố gắng triển khai Facebook "Nút Thích" trong ứng dụng Android của mình. Trước khi tôi sử dụng Facebook SDK v3, nơi bạn sẽ thiết lập LikeView và sau đó gọi likeView.handleOnActivityResult (context, requestCode, resultCode, data) bên trong onActivityResult(); Điều này sẽ thay đổi nút để sau khi trang được "thích" nó sẽ hiển thị "Thích" và số lượng người cũng thích trang.Android Facebook SDK v4 Vấn đề LikeView

Hiện tại, tôi đang sử dụng SDK Facebook v4 vì v3 hiện không còn được dùng nữa. Trong phiên bản này, tôi không thấy bất kỳ tài liệu hoặc dù sao để có cùng một loại chức năng cho nút "thích". Nó không còn có phương thức likeView.handlePnActivityResult mà v3 có. Bây giờ khi người dùng nhấn nút "thích" và thích trang, nó không thay đổi trạng thái của nút.

Có ai biết cách giải quyết vấn đề này để nó có chức năng giống như LikeView trong SDK Facebook v3 không?

Đây là mã của những gì tôi đang làm:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Initialize FaceBook SDK 
    FacebookSdk.sdkInitialize(this); 

    setContentView(R.layout.activity_about); 

    // Set up ActionBar 
    actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 

    terms = (LinearLayout) findViewById(R.id.terms_holder); 
    privacyPolicy = (LinearLayout) findViewById(R.id.privacy_policy_holder); 
    share = (LinearLayout) findViewById(R.id.social_media_holder); 
    environmentButton = (Button) findViewById(R.id.environment_change); 
    likeView = (LikeView) findViewById(R.id.like_view); 

    likeView.setObjectIdAndType("##############", LikeView.ObjectType.PAGE); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // In the old Facebook SDK this is where it would change the like button to "liked 2,038" but this code is deprecated now apparently 
    // likeView.handleOnActivityResult(this, requestCode, resultCode, data); 
} 

Và đây là XML của tôi: Câu trả lời

<LinearLayout 
android:id="@+id/social_media_holder" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:paddingBottom="10dp" 
android:gravity="center_vertical" 
android:clickable="true" 
android:onClick="onClick" > 


<com.facebook.share.widget.LikeView 
    android:id="@+id/like_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingTop="10dp" />   


<TextView 
    android:id="@+id/post_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="5dp" 
    android:text="@string/post_about_us" 
    android:textSize="20dp" 
    android:textColor="@color/dark_grey" /> 

+4

Bạn cần triển khai một CallbackManager và sau đó, trong onActivityResult, hãy bỏ qua kết quả cho nó qua: callbackManager.onActivityResult (requestCode, resultCode, data); – Guardanis

+0

Cảm ơn bạn rất nhiều! – Sloganho

+1

Vui vì tôi có thể giúp ~ – Guardanis

Trả lời

6

Guardanis là đúng (phần bình luận Câu hỏi của). Nhưng đây là mã cho nó (tôi đã sử dụng).

trong onCreate (...)

callbackManager = CallbackManager.Factory.create(); 

trong onActivityResult (...)

callbackManager.onActivityResult(requestCode, resultCode, data); 
+0

điều này không hiệu quả đối với tôi. Tôi đang sử dụng API Parse cho đăng nhập Facebook và tôi cũng đã thêm ParseFacebookUtils.onActivityResult (requestCode, resultCode, data); trong phương thức onActivityResult(). –

+0

Tôi đã giải quyết vấn đề này, tôi đã bỏ lỡ thêm Trình kiểm tra/nhà phát triển vào ứng dụng Facebook. –

+1

@kalan nó làm việc cho tôi nhờ :-) – Prashant

-1

Native Giống như Button: Các Native Giống như Button, được thiết kế cho các ứng dụng di động, sẽ không còn được hỗ trợ bắt đầu với Facebook SDK phiên bản 4.28 trở lên. Các phiên bản trước của SDK vẫn có thể sử dụng Nút Kiểu gốc, nhưng bắt đầu từ 2/6, Nút Gốc Giống như sẽ không còn được hỗ trợ nữa. Sau ngày 2/6, các hộp thoại cho Native Like sẽ không còn xuất hiện và nhấn vào bất kỳ nút gốc nào giống như vậy sẽ không dẫn đến hành động nào.

+1

OK, nhưng bạn không cung cấp giải pháp nào! – MeLine

Các vấn đề liên quan