#java #android
#java #Android
Вопрос:
Я пытаюсь добавить WebView
в свое приложение для Android. Для этого я следую этому руководству — https://www.youtube.com/watch?v=TUXui5ItBkM
Если я введу Webview
activity_main, отобразится веб-сайт, хотя это не то, что я хочу.
У меня есть 3 фрагмента, прямая трансляция, новостные статьи и настройки. Когда я добавляю WebView
к фрагменту NewsArticles вот так:
<WebView
android:id="@ id/webview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
приложение выходит из строя. Я не уверен, в чем проблема. Кажется, я не нахожу никаких всплывающих окон с ошибками / ошибками и в Android studio. Это MainActivity
код:
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.alt-info.com");
У меня также включено разрешение на интернет-трафик.
Комментарии:
1. Это то, что я нашел в logcat imgur.com/a/mxZhI9T
2. вам нужно инициализировать WebView в коде фрагмента, где находится <WebView> , и переместить код из MainActivity туда
3. Вы правы. Но теперь я не уверен в том, как на самом деле реализовать код WebView, потому что файл java articlesFragment выглядит по-другому и заставил меня изменить findViewById на WebView.findViewById.
Ответ №1:
Если вы используете фрагмент, то вы должны указать это:
Замените этот следующий код
@Override public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_articles, container, false);
}
с помощью этого:
@Override public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_articles, container, false);
webView = (WebView) view.findViewById(R.id.webview);
}
Когда вы используете фрагменты, вы должны сказать «view.findViewById()». У вас есть добавить «view» перед «findViewById» КАЖДЫЙ РАЗ, когда вы инициализируете объект.
Кроме того, если приложение выходит из строя, в Android Studio обязательно должна появиться ошибка. Нажмите на «Logcat» после его запуска и проверьте наличие красного текста.
Комментарии:
1. Мне пришлось переместить код WebView из MainActivity в ArticlesFragment, но в ArticlesFragment у меня было это `@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { вернуть inflater.inflate(R.layout. fragment_articles, контейнер, false); }« Не уверен, как добавить предоставленный вами код.
2. Попробуйте решение сейчас.