我正在尝试将facebook“like”按钮整合到我的Android应用中。我正在使用Facebook SDK 4.1.2。
我的应用程序使用片段具有导航抽屉的主要活动。其中一个片段有ListView。我需要在每个列表项中使用facebook“like”按钮。我正在使用自定义BaseAdapter来构建列表项。 我没有登录facebook的问题以及从某些Facebook页面获取帖子的问题。
但我遇到了下一个问题:
1 http://contest.norejayevents.com/like.gif
顺便说一下,是否可以使这个按钮看起来像这样?
2 http://www.jonathandoctor.net/images/facebook_like_button_big-small.jpg
这项任务我缺少什么?
以下是我的代码部分:
MainActivity.java
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
OpenFacebookSession();
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
ListAdapter.java
public class ListAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.feed_item, null);
LikeView likeView = (LikeView) convertView.findViewById(R.id.like_view);
likeView.setLikeViewStyle(LikeView.Style.BOX_COUNT);
likeView.setAuxiliaryViewPosition(LikeView.
AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType(someID,//some Facebook object ID
activity-launchmode/en",
LikeView.ObjectType.OPEN_GRAPH);
return convertView;
}
}
feed_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/feed_bg"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="@dimen/feed_item_margin"
android:layout_marginRight="@dimen/feed_item_margin"
android:layout_marginTop="@dimen/feed_item_margin"
android:background="@drawable/bg_parent_rounded_corner"
android:orientation="vertical"
android:paddingBottom="@dimen/feed_item_padding_top_bottom"
android:paddingTop="@dimen/feed_item_padding_top_bottom" >
<com.facebook.share.widget.LikeView
android:id="@+id/like_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/feedImage1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
使用“赞”按钮需要应用程序批准,因此在开发过程中,只有您应用中具有 Admin / Developer / Tester 角色的用户才能访问它。一旦获得批准,任何用户都可以使用该功能。
答案 1 :(得分:0)
完成这项工作的完美解决方案如下。
我们在考虑您已经生成了facebook应用并且输入了Hash_key ,并且您还将您的帐户添加为测试人员,如果没有。
将其添加到xml视图中。
<com.facebook.share.widget.LikeView
android:id="@+id/like_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
然后将此添加到您的OnCreate方法
FacebookSdk.sdkInitialize(MainActivity.this);
callbackManager = CallbackManager.Factory.create();
LikeView likeView = (LikeView) findViewById(R.id.likeView);
likeView.setLikeViewStyle(LikeView.Style.BUTTON);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType("https://www.facebook.com/Rultech",LikeView.ObjectType.OPEN_GRAPH);
注意:LikeView.Style.BUTTON可根据您的需要进行更改。
然后将以下代码添加到Manifest。
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/fb_app_id" />
<provider android:authorities="com.facebook.app.FacebookContentProvider_fb_app_id"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
然后onActivityResult添加此
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
}
如果手机上未安装Facebook应用程序,可能会出现故障。
最后运行应用。这将确保我们已经针对 FACEBOOK SDK 4.0.1 对上述版本进行了测试。