【发布时间】:2023-03-19 06:48:01
【问题描述】:
我有一个 ViewPager,里面有几个片段,其中一个包含一个 webview。在该 WebView 中,我想在我用来显示图像的指定活动中打开指向图像 (jpeg/png) 的链接:
MyFragment.java
webView.setWebViewClient(new WebViewClient() {
public void startImageView(String url) {
Intent imageIntent = new Intent(getActivity(), ImageActivity.class);
imageIntent.putExtra(ImageActivity.IMAGE_URL, Uri.parse(url));
startActivity(imageIntent);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
if (url.toLowerCase().endsWith(".png") || url.toLowerCase().endsWith(".jpg") || url.toLowerCase().endsWith(".jpeg")) {
startImageView(url);
} else {
view.loadUrl(url);
}
return false;
}
});
ImageActivity.java
public class ImageActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_full_size);
...
}
AndroidManifest.xml
...
<activity
android:name="com.example.main.ImageActivity"
android:label="Picture"
android:screenOrientation="portrait"
>
</activity>
...
当我点击 webview 中的图片链接时,图片活动确实会加载。但是,活动被加载到内部片段中,而不是在新窗口中打开(活动通常会这样做)。当我从不同的活动(而不是如上所述的 web 视图内)启动此活动时,活动将按预期在新窗口中打开。从 WebView 启动时如何在新窗口中打开 ImageActivity 的任何想法?
【问题讨论】:
-
我喜欢你的问题。
-
ImageActivity.class 的类名怎么可能是FullImageActivity?
-
@AnirudhSharma - 对不起,你是对的。为了清楚起见,我在这篇文章中更改了它,忘记重命名所有出现的地方。修好了。
-
你在
startImageView中尝试了没有getActivity()的getActivity().getApplicationContext()吗? -
@Wishmaster - 是的,不幸的是它没有用。
标签: android android-fragments android-activity android-viewpager android-webview