Android ListView中的WebView项目

Android ListView中的WebView项目,android,android-listview,android-webview,android-websettings,Android,Android Listview,Android Webview,Android Websettings,我正在尝试创建一个包含Webview的ListView。 webview每次都由不同的url加载 @Override public View getView(int position, View convertView, ViewGroup parent) { View rowView = convertView; if (rowView == null) { // res = getLayoutInflater().inflate(R.layout.

我正在尝试创建一个包含Webview的ListView。 webview每次都由不同的url加载

@Override
public View getView(int position, View convertView, ViewGroup parent)
{

    View rowView = convertView;
    if (rowView == null)
    {

        // res = getLayoutInflater().inflate(R.layout.item_composer, null);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        rowView = inflater.inflate(R.layout.card, parent, false);

        ViewHolder holder = new ViewHolder();

        holder.webview = (WebView) rowView.findViewById(R.id.card_webview);
        holder.webview.getSettings().setJavaScriptEnabled(true);

        holder.webview.setWebViewClient(new WebViewClient());

        rowView.setTag(holder);

    }

    ViewHolder holder = (ViewHolder) rowView.getTag();

    holder.webview.loadUrl(cardList.get(position).getUrl());//loading webview with URL




    return rowView;
}

我成功地实现了它,但它的行为非常奇怪(webview并不总是加载正确的url)。我遇到了这个问题,@commonware建议这是不可能的。有什么方法可以做到这一点吗?

用户已经在评论中找到了我们讨论的解决方案:


抱歉,我的坏消息是,我在for中加载了arraylist,因此它乘以 五,

这是最后一条评论的答案,用户询问如何在TextView上显示HTML页面

首先,您需要在字符串上加载HTML,您可以使用AsyncTask和类似的方法来实现这一点:

HttpClient=new DefaultHttpClient(); HttpGet请求=新的HttpGet(url); HttpResponse response=client.execute(请求)

然后需要在TextView上设置HTML,记住在UI线程上这样做

textView.setText(Html.fromHtml(html));

你能描述一下“非常奇怪”吗?我认为“非常奇怪”的话题是问题,对吗?我在描述中加了一句。当滚动listview时,它并不总是加载正确的url,他们似乎混淆了…很抱歉问这个问题,但是你有没有在没有webview的情况下测试过你的代码?尝试使用您正在使用的相同逻辑在每个项目上设置不同的背景颜色,我将在30分钟内测试您的代码。如果您可以等待:)抱歉,我的错误,我在for中加载了arraylist,所以它乘以5为什么Commonware建议不要在ListView中使用WebView?
textView.setText(Html.fromHtml(html));