如何在web视图上onitemclick加载HTML文件视图、加载、文件、如何在

2023-09-07 23:04:57 作者:你是我一碰就会痛的旧伤疤

我有超过100个html文件,我想每一个文件打开就行单击列表视图和每个HTML文件应在web视图打开,我想这code,但是这是行不通的,只有在web视图中打开的连续点击,HTML文件没有显示出来。

 包com.Example.apk;



进口android.app.Activity;
进口android.graphics.Bitmap;
进口android.os.Bundle;
进口android.webkit.WebViewClient;

公共类的WebView延伸活动{

公共类WebViewActivity延伸活动{
    的WebView网页;
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_webview);
        网页=(web视图)findViewById(R.id.webview1);
        web.setWebViewClient(新myWebClient());
        web.getSettings()setJavaScriptEnabled(真)。
        INT POS = getIntent()getIntExtra(钥匙,0);
        如果(POS == 0)
        {
        web.loadUrl(文件:///android_asset/work.html);
        }
        否则,如果(位置== 1)
        {
        web.loadUrl(文件:///android_asset/work1.html);
        }
        否则,如果(位置== 2)
        {
        web.loadUrl(文件:///android_asset/work2.html);
        }
        否则,如果(POS == 3)
        {
        web.loadUrl(文件:///android_asset/work3.html);
        }
      //同样为4和5等。
    }

    公共类myWebClient扩展WebViewClient
    {
        @覆盖
        公共无效onPageStarted(web视图查看,字符串URL,位图图标){
            // TODO自动生成方法存根
            super.onPageStarted(查看,网址,网站图标);
        }

        @覆盖
        公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){
            // TODO自动生成方法存根

            view.loadUrl(URL);
            返回true;

        }
        @覆盖
        公共无效onReceivedError(web视图来看,INT错误code,
                字符串描述,字符串failingUrl){
        }
        @覆盖
        公共无效onPageFinished(web视图查看,字符串URL){
            // TODO自动生成方法存根
            super.onPageFinished(查看,网址);

        }
    }
}
}
 

解决方案

通过位置,下一个活动。

  list1.setOnItemClickListener(新OnItemClickListener(){
公共无效onItemClick(适配器视图<>母公司视图中查看,
            INT位置,长的id){
意图myIntent =新的意图(MainActivtiy.this,WebViewActivity.class);
myIntent.putExtra(钥匙,位置);
startActivity(myIntent);
}
});
 

然后在WebViewActivity即activity_webview)

 公共类WebViewActivity延伸活动{
的WebView网页;
@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_webview);
    网页=(web视图)findViewById(R.id.webview1);
    web.setWebViewClient(新myWebClient());
    web.getSettings()setJavaScriptEnabled(真)。
    INT POS = getIntent()getIntExtra(钥匙,0);
    如果(POS == 0)
    {
    web.loadUrl(文件:///android_asset/work.html);
    }
    否则,如果(位置== 1)
    {
    web.loadUrl(文件:///android_asset/work1.html);
    }
    否则,如果(位置== 2)
    {
    web.loadUrl(文件:///android_asset/work2.html);
    }
    否则,如果(POS == 3)
    {
    web.loadUrl(文件:///android_asset/work3.html);
    }
   ... //同样为4和5等。
}

公共类myWebClient扩展WebViewClient
{
    @覆盖
    公共无效onPageStarted(web视图查看,字符串URL,位图图标){
        // TODO自动生成方法存根
        super.onPageStarted(查看,网址,网站图标);
    }

    @覆盖
    公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){
        // TODO自动生成方法存根

        view.loadUrl(URL);
        返回true;

    }
    @覆盖
    公共无效onReceivedError(web视图来看,INT错误code,
            字符串描述,字符串failingUrl){
    }
    @覆盖
    公共无效onPageFinished(web视图查看,字符串URL){
        // TODO自动生成方法存根
        super.onPageFinished(查看,网址);

    }
}
 
VS 默认打开html文件没有设计视图的解决办法

XML为WebViewActivity

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直>

<的WebView
    机器人:ID =@ + ID / webView1
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent/>

< / LinearLayout中>
 

请在清单文件中WebViewActivity的条目。

i have more than 100 html files and i want each file to open on row click in listview and each html file should open in the webview , i tried this code but this is not working, only the webview opens on row click , the html file is not showing up.

 package com.Example.apk;



import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebViewClient;

public class WebView extends Activity {

public class WebViewActivity extends Activity {
    WebView web;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);
        web = (WebView) findViewById(R.id.webview1);
        web.setWebViewClient(new myWebClient());
        web.getSettings().setJavaScriptEnabled(true);
        int pos = getIntent().getIntExtra("key",0);
        if(pos==0)
        {
        web.loadUrl("file:///android_asset/work.html");
        }
        else if(pos==1)
        {
        web.loadUrl("file:///android_asset/work1.html");
        }  
        else if(pos==2)
        {
        web.loadUrl("file:///android_asset/work2.html");
        } 
        else if(pos==3)
        {
        web.loadUrl("file:///android_asset/work3.html");
        }  
      // similarly for 4 and 5 and so on.
    }

    public class myWebClient extends WebViewClient
    {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub

            view.loadUrl(url);
            return true;

        }
        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);

        }
    }
}
}

解决方案

Pass the position to next Activity

list1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
Intent myIntent = new Intent(MainActivtiy.this,WebViewActivity.class);
myIntent.putExtra("key",position);
startActivity(myIntent);
}
});   

Then in WebViewActivity ie activity_webview)

public class WebViewActivity extends Activity {
WebView web;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_webview);
    web = (WebView) findViewById(R.id.webview1);
    web.setWebViewClient(new myWebClient());
    web.getSettings().setJavaScriptEnabled(true);
    int pos = getIntent().getIntExtra("key",0);
    if(pos==0)
    {
    web.loadUrl("file:///android_asset/work.html");
    }
    else if(pos==1)
    {
    web.loadUrl("file:///android_asset/work1.html");
    }  
    else if(pos==2)
    {
    web.loadUrl("file:///android_asset/work2.html");
    } 
    else if(pos==3)
    {
    web.loadUrl("file:///android_asset/work3.html");
    }  
   ...// similarly for 4 and 5 and so on.
}

public class myWebClient extends WebViewClient
{
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }
    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

    }
}

xml for WebViewActivity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<WebView
    android:id="@+id/webView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

Make an entry for WebViewActivity in Manifest file.