在外层/上层类

时间:2016-11-16 20:25:22

标签: java android class methods webview

String url = "http://xxxx.com/login.php?UID=";
String uid = portal.mysharedvars.getString("uid");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_personel_activity);
/*if(newurl.toLowerCase().contains("index.php")) {
I want to do somethings here
                                                 }
*/

    WebView siteview = (WebView) findViewById(R.id.personel_webview);
    siteview.setWebViewClient(new MywebViewClient());

    final String link = url+uid;
    siteview.loadUrl(link);
}
private class MywebViewClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(url);
        return true;
    }
    public void onPageFinished(WebView view, String url) {
        // do your stuff here
        String newurl = view.getUrl();
        Toast.makeText(login_personel_webview.this, newurl, Toast.LENGTH_LONG).show();
                                                             }

如上所述,我在webview活动中使用onPageFinished public链接变量。我想在带有if语句的带星号的行中使用该变量。我怎么能在那里使用那个变量?

编辑:ofc链接不会像启动时声明的那样是静态的。 Tats只是登录页面。将会有很多页面。

1 个答案:

答案 0 :(得分:0)

尝试通过回调

执行此操作
String url = "http://xxxx.com/login.php?UID=";
String uid = portal.mysharedvars.getString("uid");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView siteview = (WebView) findViewById(R.id.personel_webview);
    siteview.setWebViewClient(new MywebViewClient(new Callback() {
        @Override
        public void onPageUrl(String url) {
           if (url.toLowerCase().contains("index.php")) {
               //Do what you want here
           }
        }
    }));

    final String link = url+uid;
    siteview.loadUrl(link);
}
private class MywebViewClient extends WebViewClient {

    Callback callback;

    public MywebViewClient(Callback callback) {
        this.callback = callback;
    }

    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(url);
        return true;
    }

    public void onPageFinished(WebView view, String url) {
        // do your stuff here
        String newurl = view.getUrl();
        callback.onPageUrl(newurl);
        Toast.makeText(login_personel_webview.this, newurl, Toast.LENGTH_LONG).show();
    }
}

public interface Callback {
    void onPageUrl(String url);
}
相关问题