2016-11-16 9 views
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.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ステートメントでその変数をstarred行に使用したいと思います。私はその変数をそこでどうやって使うことができますか?上記のように、外部/上位クラスのgetUrl()変数を使用して

EDIT:ofcリンクは開始時に宣言されているように静的ではありません。 Tatsはログインページです。多くのページよりも。

+0

を介してこれを行うにしてみ? –

+0

はいwilliam。そのとおりです。 – Looden

答えて

0

はそうあなたがのonCreate()メソッド内NEWURL変数にアクセスしたいコールバック

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); 
} 
+0

ドミトリーありがとうございます。完璧に動作します。 +1 – Looden

関連する問題