我尝试着在main.java中各个地方加入,均是报错,实再不会应用,诚心求教各位老师。

解决方案 »

  1.   

    把你要的检测功能封装成函数,然后去oncreate里调用就可以了吧
      

  2.   

    明白你的意思了,首先跟你说下,你刚启动一个项目的时候首先是去你的MainActivity类里面,然后去MainActivity的OnCreat()方法里面,所以呢你可以在OnCreat()方法里面去实现,但是呢一般我们操作这些东西最好放到一个线程里面,所以你可以永Handler进行线程处理防止请求服务器时间过长程序死掉。
      

  3.   

    main.java 如下package com.pocketdigi.webview;
     
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.net.ConnectivityManager;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.KeyEvent;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
     public class main extends Activity {
        /** Called when the activity is first created. */
    WebView wv;
    ProgressDialog pd;
    Handler handler;

    //检测url
    private boolean isOpenNetwork() {
    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connManager.getActiveNetworkInfo() != null) {
    return connManager.getActiveNetworkInfo().isAvailable();
    }
    return false;
    } private void initMoreGames() {  
        String URL_MOREGAMES = "http://www.baidu.com";  
        WebView mWebView = (WebView) findViewById(R.id.view_gamesort);  
      
        if (mWebView != null) {  
            mWebView.requestFocus();  
            WebSettings webSettings = mWebView.getSettings();  
            if (webSettings != null) {  
                webSettings.setJavaScriptEnabled(true);  
                webSettings.setCacheMode(MODE_PRIVATE);  
                webSettings.setDefaultTextEncodingName("utf-8");  
            }  
      
            // 判断网络是否可用  
            if(isOpenNetwork() == true) {  
                mWebView.loadUrl(URL_MOREGAMES);  
            } else {  
                AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this);  
                builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");  
                  
                builder.setPositiveButton("是", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        Intent intent = null;  
                          
                        try {  
                            String sdkVersion = android.os.Build.VERSION.SDK;  
                            if(Integer.valueOf(sdkVersion) > 10) {  
                                intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);  
                            }else {  
                                intent = new Intent();  
                                ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");  
                                intent.setComponent(comp);  
                                intent.setAction("android.intent.action.VIEW");  
                            }  
                            MoreGamesActivity.this.startActivity(intent);  
                        } catch (Exception e) {  
                            Log.w(TAG, "open network settings failed, please check...");  
                            e.printStackTrace();  
                        }  
                    }  
                }).setNegativeButton("否", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        dialog.cancel();          
                        finish();  
                    }  
                }).show();  
            }  
        } else {  
            Log.w(TAG, "mWebView is null, please check...");  
        }  

    //检测url end
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            init();//执行初始化函数
            loadurl(wv,"http://baidu.com ");
        }
        
        public void init(){
         // Progress
         pd=new ProgressDialog(main.this);
         pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
         pd.setMessage("数据载入中,请稍候!");
         // Show/Hide message
         handler=new Handler(){
         public void handleMessage(Message msg)
         {
         //定义一个Handler,用于处理下载线程与UI间通讯
         if (!Thread.currentThread().isInterrupted())
         {
         switch (msg.what)
         {
         case 0:
         pd.show();//显示进度对话框
         break;
         case 1:
         pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
         break;
         }
         }
         super.handleMessage(msg);
         }
         };
         // WebView
         wv=(WebView)findViewById(R.id.wv);
         wv.getSettings().setJavaScriptEnabled(true);//可用JS
         wv.setScrollBarStyle(0);//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
         wv.setWebViewClient(new WebViewClient(){
         public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
         loadurl(view,url);//载入网页
         return true;
         }//重写点击动作,用webview载入     });
         wv.setWebChromeClient(new WebChromeClient(){
         public void onProgressChanged(WebView view,int progress){//载入进度改变而触发
         if(progress==100){
         handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框
         }
         super.onProgressChanged(view, progress);
         }
         });
         }
        
        
        public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键
            if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {   
                wv.goBack();   
                return true;   
            }else if(keyCode == KeyEvent.KEYCODE_BACK){
             ConfirmExit();//按了返回键,但已经不能返回,则执行退出确认
             return true; 
            }   
            return super.onKeyDown(keyCode, event);   
        }
        public void ConfirmExit(){//退出确认
         AlertDialog.Builder ad=new AlertDialog.Builder(main.this);
         ad.setTitle("退出");
         ad.setMessage("是否退出商城?");
         ad.setPositiveButton("是", new DialogInterface.OnClickListener() {//退出按钮
    @Override
    public void onClick(DialogInterface dialog, int i) {
    // TODO Auto-generated method stub
    main.this.finish();//关闭activity
     
    }
    });
         ad.setNegativeButton("否",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int i) {
    //不退出不用执行任何操作
    }
    });
         ad.show();//显示对话框
        }
        public void loadurl(final WebView view,final String url){
         new Thread(){
             public void run(){
             handler.sendEmptyMessage(0);
             view.loadUrl(url);//载入网页
             }
            }.start();
        }
     
     
    }报错 为 无法解析 view_gamesort,或者它不是字段
    以及
    无法解析 view_gamesort,或者它不是字
     段MoreGamesActivity 无法解析为类
     型此行的多个标记
    - TAG cannot be resolved to a 
     variable
    - 无法解析 Log
      

  4.   


    package com.pocketdigi.webview;
     
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.net.ConnectivityManager;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.KeyEvent;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
     public class main extends Activity {
        /** Called when the activity is first created. */
    WebView wv;
    ProgressDialog pd;
    Handler handler;

    //检测url
    private boolean isOpenNetwork() {
    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connManager.getActiveNetworkInfo() != null) {
    return connManager.getActiveNetworkInfo().isAvailable();
    }
    return false;
    } private void initMoreGames() {  
        String URL_MOREGAMES = "http://www.baidu.com";  
        WebView mWebView = (WebView) findViewById(R.id.view_gamesort);  
      
        if (mWebView != null) {  
            mWebView.requestFocus();  
            WebSettings webSettings = mWebView.getSettings();  
            if (webSettings != null) {  
                webSettings.setJavaScriptEnabled(true);  
                webSettings.setCacheMode(MODE_PRIVATE);  
                webSettings.setDefaultTextEncodingName("utf-8");  
            }  
      
            // 判断网络是否可用  
            if(isOpenNetwork() == true) {  
                mWebView.loadUrl(URL_MOREGAMES);  
            } else {  
                AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this);  
                builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");  
                  
                builder.setPositiveButton("是", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        Intent intent = null;  
                          
                        try {  
                            String sdkVersion = android.os.Build.VERSION.SDK;  
                            if(Integer.valueOf(sdkVersion) > 10) {  
                                intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);  
                            }else {  
                                intent = new Intent();  
                                ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");  
                                intent.setComponent(comp);  
                                intent.setAction("android.intent.action.VIEW");  
                            }  
                            MoreGamesActivity.this.startActivity(intent);  
                        } catch (Exception e) {  
                            Log.w(TAG, "open network settings failed, please check...");  
                            e.printStackTrace();  
                        }  
                    }  
                }).setNegativeButton("否", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        dialog.cancel();          
                        finish();  
                    }  
                }).show();  
            }  
        } else {  
            Log.w(TAG, "mWebView is null, please check...");  
        }  

    //检测url end
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            init();//执行初始化函数
            loadurl(wv,"http://baidu.com ");
        }
        
        public void init(){
         // Progress
         pd=new ProgressDialog(main.this);
         pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
         pd.setMessage("数据载入中,请稍候!");
         // Show/Hide message
         handler=new Handler(){
         public void handleMessage(Message msg)
         {
         //定义一个Handler,用于处理下载线程与UI间通讯
         if (!Thread.currentThread().isInterrupted())
         {
         switch (msg.what)
         {
         case 0:
         pd.show();//显示进度对话框
         break;
         case 1:
         pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
         break;
         }
         }
         super.handleMessage(msg);
         }
         };
         // WebView
         wv=(WebView)findViewById(R.id.wv);
         wv.getSettings().setJavaScriptEnabled(true);//可用JS
         wv.setScrollBarStyle(0);//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
         wv.setWebViewClient(new WebViewClient(){
         public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
         loadurl(view,url);//载入网页
         return true;
         }//重写点击动作,用webview载入     });
         wv.setWebChromeClient(new WebChromeClient(){
         public void onProgressChanged(WebView view,int progress){//载入进度改变而触发
         if(progress==100){
         handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框
         }
         super.onProgressChanged(view, progress);
         }
         });
         }
        
        
        public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键
            if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {   
                wv.goBack();   
                return true;   
            }else if(keyCode == KeyEvent.KEYCODE_BACK){
             ConfirmExit();//按了返回键,但已经不能返回,则执行退出确认
             return true; 
            }   
            return super.onKeyDown(keyCode, event);   
        }
        public void ConfirmExit(){//退出确认
         AlertDialog.Builder ad=new AlertDialog.Builder(main.this);
         ad.setTitle("退出");
         ad.setMessage("是否退出商城?");
         ad.setPositiveButton("是", new DialogInterface.OnClickListener() {//退出按钮
    @Override
    public void onClick(DialogInterface dialog, int i) {
    // TODO Auto-generated method stub
    main.this.finish();//关闭activity
     
    }
    });
         ad.setNegativeButton("否",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int i) {
    //不退出不用执行任何操作
    }
    });
         ad.show();//显示对话框
        }
        public void loadurl(final WebView view,final String url){
         new Thread(){
             public void run(){
             handler.sendEmptyMessage(0);
             view.loadUrl(url);//载入网页
             }
            }.start();
        }
     
     
    }报错 为 无法解析 view_gamesort,或者它不是字段
    以及
    无法解析 view_gamesort,或者它不是字
     段MoreGamesActivity 无法解析为类
     型此行的多个标记
    - TAG cannot be resolved to a 
     variable
    - 无法解析 Log伙计,你直接把别个代码copy过来肯定不行啊,MoreGamesActivity 改成你自己的main ,view_gamesort是一个ID ,你需要在xml中定义一个webview
      

  5.   

    你的代码是从网上拷贝的吧,很多地方要改成和你的工程对应的。你那个类叫main(以后最好第一个字母要大写),你得把诸如MoreGamesActivity.this, 诸如 R.id.XXXXX或者R.layout.XXXX改成你自己工程里的东西
      

  6.   


    package com.pocketdigi.webview;
     
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.net.ConnectivityManager;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.KeyEvent;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
     public class main extends Activity {
        /** Called when the activity is first created. */
    WebView wv;
    ProgressDialog pd;
    Handler handler;

    //检测url
    private boolean isOpenNetwork() {
    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connManager.getActiveNetworkInfo() != null) {
    return connManager.getActiveNetworkInfo().isAvailable();
    }
    return false;
    } private void initMoreGames() {  
        String URL_MOREGAMES = "http://www.baidu.com";  
        WebView mWebView = (WebView) findViewById(R.id.view_gamesort);  
      
        if (mWebView != null) {  
            mWebView.requestFocus();  
            WebSettings webSettings = mWebView.getSettings();  
            if (webSettings != null) {  
                webSettings.setJavaScriptEnabled(true);  
                webSettings.setCacheMode(MODE_PRIVATE);  
                webSettings.setDefaultTextEncodingName("utf-8");  
            }  
      
            // 判断网络是否可用  
            if(isOpenNetwork() == true) {  
                mWebView.loadUrl(URL_MOREGAMES);  
            } else {  
                AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this);  
                builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");  
                  
                builder.setPositiveButton("是", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        Intent intent = null;  
                          
                        try {  
                            String sdkVersion = android.os.Build.VERSION.SDK;  
                            if(Integer.valueOf(sdkVersion) > 10) {  
                                intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);  
                            }else {  
                                intent = new Intent();  
                                ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");  
                                intent.setComponent(comp);  
                                intent.setAction("android.intent.action.VIEW");  
                            }  
                            MoreGamesActivity.this.startActivity(intent);  
                        } catch (Exception e) {  
                            Log.w(TAG, "open network settings failed, please check...");  
                            e.printStackTrace();  
                        }  
                    }  
                }).setNegativeButton("否", new DialogInterface.OnClickListener() {  
                    @Override  
                    public void onClick(DialogInterface dialog, int which) {  
                        dialog.cancel();          
                        finish();  
                    }  
                }).show();  
            }  
        } else {  
            Log.w(TAG, "mWebView is null, please check...");  
        }  

    //检测url end
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            init();//执行初始化函数
            loadurl(wv,"http://baidu.com ");
        }
        
        public void init(){
         // Progress
         pd=new ProgressDialog(main.this);
         pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
         pd.setMessage("数据载入中,请稍候!");
         // Show/Hide message
         handler=new Handler(){
         public void handleMessage(Message msg)
         {
         //定义一个Handler,用于处理下载线程与UI间通讯
         if (!Thread.currentThread().isInterrupted())
         {
         switch (msg.what)
         {
         case 0:
         pd.show();//显示进度对话框
         break;
         case 1:
         pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
         break;
         }
         }
         super.handleMessage(msg);
         }
         };
         // WebView
         wv=(WebView)findViewById(R.id.wv);
         wv.getSettings().setJavaScriptEnabled(true);//可用JS
         wv.setScrollBarStyle(0);//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
         wv.setWebViewClient(new WebViewClient(){
         public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
         loadurl(view,url);//载入网页
         return true;
         }//重写点击动作,用webview载入     });
         wv.setWebChromeClient(new WebChromeClient(){
         public void onProgressChanged(WebView view,int progress){//载入进度改变而触发
         if(progress==100){
         handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框
         }
         super.onProgressChanged(view, progress);
         }
         });
         }
        
        
        public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键
            if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {   
                wv.goBack();   
                return true;   
            }else if(keyCode == KeyEvent.KEYCODE_BACK){
             ConfirmExit();//按了返回键,但已经不能返回,则执行退出确认
             return true; 
            }   
            return super.onKeyDown(keyCode, event);   
        }
        public void ConfirmExit(){//退出确认
         AlertDialog.Builder ad=new AlertDialog.Builder(main.this);
         ad.setTitle("退出");
         ad.setMessage("是否退出商城?");
         ad.setPositiveButton("是", new DialogInterface.OnClickListener() {//退出按钮
    @Override
    public void onClick(DialogInterface dialog, int i) {
    // TODO Auto-generated method stub
    main.this.finish();//关闭activity
     
    }
    });
         ad.setNegativeButton("否",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int i) {
    //不退出不用执行任何操作
    }
    });
         ad.show();//显示对话框
        }
        public void loadurl(final WebView view,final String url){
         new Thread(){
             public void run(){
             handler.sendEmptyMessage(0);
             view.loadUrl(url);//载入网页
             }
            }.start();
        }
     
     
    }报错 为 无法解析 view_gamesort,或者它不是字段
    以及
    无法解析 view_gamesort,或者它不是字
     段MoreGamesActivity 无法解析为类
     型此行的多个标记
    - TAG cannot be resolved to a 
     variable
    - 无法解析 Log伙计,你直接把别个代码copy过来肯定不行啊,MoreGamesActivity 改成你自己的main ,view_gamesort是一个ID ,你需要在xml中定义一个webview
    谢谢您的回复,我正在准备,正在进行入门中,所以很多东西太不懂,谢谢了,我去试试。