【发布时间】:2019-02-09 22:30:34
【问题描述】:
我正在尝试在 ImageView 上设置点击监听器,这将在特定页面上打开 Facebook 应用程序。 变量 'facebook' 包含我要打开的 Facebook 页面的 URL 我的点击监听器代码如下:
imgFb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (facebook != null) {
Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(context);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);
}
}
});
getFacebookUrl()方法如下:
//Open club's Facebook page
public String getFacebookPageURL(Context context) {
PackageManager packageManager = context.getPackageManager();
try {
int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
if (versionCode >= 3002850) { //newer versions of fb app
return "fb://facewebmodal/f?href=" + facebook;
} else { //older versions of fb app
return "fb://page/" + facebook;
}
} catch (PackageManager.NameNotFoundException e) {
return facebook; //normal web url
}
}
此代码不适用于我。我在以下两行中有空指针异常:
PackageManager packageManager = context.getPackageManager();
String facebookUrl = getFacebookPageURL(context);
我认为这与上下文变量有关。我不太了解它,也不确定该放什么,所以我使用了来自Open Facebook Page in Facebook App (if installed) on Android 的代码。谁能帮我解决这个问题?
【问题讨论】:
-
无需使用任何 Facebook API。只需使用 Intent。
标签: java android android-studio android-intent android-context