我在我的Android应用中添加了Facebook ShareButton
,如下所示:
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(map)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
mShareButton.setShareContent(content);
我注意到,如果我的手机未安装Facebook应用,则ShareButton
将显示为灰色。如果我按预期的方式单击它,则什么也不会发生。在这种情况下,我想弹出一个Toast
,以通知用户他们需要安装Facebook App才能使用共享功能。我该怎么办?我尝试添加:
if (!mShareButton.isEnabled()) {
mShareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Toast.makeText(getContext(), "Requires Facebook app.", Toast.LENGTH_SHORT).show();
}
});
}
但是,当我单击灰色按钮时,它什么也没做。有什么想法吗?
答案 0 :(得分:0)
嗯,这几乎好像从未设置监听器。而且,无论状态如何,您都希望它就位。将if
移到onClick
内,并清楚地处理条件。
// pseudo
button.setListener {
if button.isEnabled doFacebookThing()
else showToast()
}
答案 1 :(得分:0)
您可以明确检查是否已安装该应用程序...
public boolean isFBInstalled() {
PackageManager pm = getPackageManager();
boolean isInstalled = false;
try {
pm.getPackageInfo("FB APP PACKAGE NAME", PackageManager.GET_ACTIVITIES);
isInstalled = true;
} catch (PackageManager.NameNotFoundException e) {
isInstalled = false;
}
return isInstalled;
}
然后在“共享的onClick”按钮中仅检查应用程序是否已安装,如下所示-
if(isFBInstalled) {
doFbStuff();
}
else {
Toast.makeText(this, "Facekook App not Found!", Toast.LENGTH_SHORT).show();
}