Java 在哪里更改此TextView以使用WebView?

Java 在哪里更改此TextView以使用WebView?,java,android,url,webview,textview,Java,Android,Url,Webview,Textview,好的,我正在安卓新兵训练营学习第九章教程,我有一些问题。这本书是为旧版本的Android Studio编写的,但我的类使用的是最新版本。我已经尽了最大努力查找最新版本的教程,但它们已经变得非常罕见了 第9章介绍了一个主/细节流程教程,有些东西已经使用过,有些东西还没有 我现在的立场是TextView/WebView问题 我尝试简单地将WebView转换为与TextView匹配,但是。loadUrl不起作用,当我使用WebView时,我会得到一个“意外的强制转换错误。布局标记是TextView”。

好的,我正在安卓新兵训练营学习第九章教程,我有一些问题。这本书是为旧版本的Android Studio编写的,但我的类使用的是最新版本。我已经尽了最大努力查找最新版本的教程,但它们已经变得非常罕见了

第9章介绍了一个主/细节流程教程,有些东西已经使用过,有些东西还没有

我现在的立场是TextView/WebView问题

我尝试简单地将WebView转换为与TextView匹配,但是。loadUrl不起作用,当我使用WebView时,我会得到一个“意外的强制转换错误。布局标记是TextView”。Android studio不会告诉我布局标记声明的位置,所以我目前正在逐行梳理所有文件。我不确定这个源布局标记是在.xml、a.java中,还是应该在清单中查找

我相信这意味着我必须将源代码布局更改为WebView,尽管我在本章中找不到任何关于它的内容,但我必须确保我有正确的导入

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>