Java 在哪里更改此TextView以使用WebView?
好的,我正在安卓新兵训练营学习第九章教程,我有一些问题。这本书是为旧版本的Android Studio编写的,但我的类使用的是最新版本。我已经尽了最大努力查找最新版本的教程,但它们已经变得非常罕见了 第9章介绍了一个主/细节流程教程,有些东西已经使用过,有些东西还没有 我现在的立场是TextView/WebView问题 我尝试简单地将WebView转换为与TextView匹配,但是。loadUrl不起作用,当我使用WebView时,我会得到一个“意外的强制转换错误。布局标记是TextView”。Android studio不会告诉我布局标记声明的位置,所以我目前正在逐行梳理所有文件。我不确定这个源布局标记是在.xml、a.java中,还是应该在清单中查找 我相信这意味着我必须将源代码布局更改为WebView,尽管我在本章中找不到任何关于它的内容,但我必须确保我有正确的导入Java 在哪里更改此TextView以使用WebView?,java,android,url,webview,textview,Java,Android,Url,Webview,Textview,好的,我正在安卓新兵训练营学习第九章教程,我有一些问题。这本书是为旧版本的Android Studio编写的,但我的类使用的是最新版本。我已经尽了最大努力查找最新版本的教程,但它们已经变得非常罕见了 第9章介绍了一个主/细节流程教程,有些东西已经使用过,有些东西还没有 我现在的立场是TextView/WebView问题 我尝试简单地将WebView转换为与TextView匹配,但是。loadUrl不起作用,当我使用WebView时,我会得到一个“意外的强制转换错误。布局标记是TextView”。
package com.example.bikeandbarge;
import android.app.Activity;
import android.support.design.widget.CollapsingToolbarLayout;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.TextView;
import com.example.bikeandbarge.dummy.DummyContent;
public class ItemDetailFragment extends Fragment {
public static final String ARG_ITEM_ID = "item_id";
private DummyContent.DummyItem mItem;
public ItemDetailFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments().containsKey(ARG_ITEM_ID)) {
// Load the dummy content specified by the fragment
// arguments. In a real-world scenario, use a Loader
// to load content from a content provider.
mItem = DummyContent.ITEM_MAP.get(getArguments().getString(ARG_ITEM_ID));
Activity activity = this.getActivity();
CollapsingToolbarLayout appBarLayout = (CollapsingToolbarLayout) activity.findViewById(R.id.toolbar_layout);
if (appBarLayout != null) {
appBarLayout.setTitle(mItem.content);
}
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.item_detail, container, false);
// Show the dummy content as text in a TextView.
if (mItem.id.equals("1")) {
rootView = inflater.inflate(R.layout.photos, container, false);
}
if (mItem.id.equals("2")) {
rootView = inflater.inflate(R.layout.tour, container, false);
}
// Can not get this to update to WebView-not certain where the layout tab is textView
//if (mItem.id.equals("3")) {
// ((WebView) rootView.findViewById( R.id.item_detail )).loadUrl( mItem.item_url ); }
//Can replace WebView with TextView but won't recognize .loadUrl without WebView
if (mItem.id.equals("3")) {
((WebView) rootView.findViewById( R.id.item_detail )).loadUrl( mItem.item_url );
}
return rootView;
}
}
我希望它能在loadUrl实际工作的情况下运行
WebView和TextView都不允许我运行该程序。apk文件根本无法编译,我甚至无法测试它。我希望至少能够编译apk文件并尝试运行它。在您的webView和manifest中添加以下代码: AndroidManifest.xml
在Web视图所在的布局中
打开布局文件item\u detail.xml(或者它是书中的fragment\u item\u detail.xml)并将
-元素更改为
。然后“意外的施法错误”应该消失。谢谢!事实证明,Android Studio的旧版本和新版本之间的命名约定比我最初想象的要大得多。在项目_detail.xml中找到它自动声明textView的位置,将其更改为webview,现在一切正常。
<application
....
android:usesCleartextTraffic="true"
android:hardwareAccelerated="true"
.....
>
<WebView
....
android:usesCleartextTraffic="true"
....
></WebView>