1

WebView を使用して、チェック ボックスを介して情報を MYSQl バックエンドに送信する Android 用のアプリを作成しました。現在、Web ビューを終了するには、ユーザーはデバイスのキーを使用して次のアプリ アクティビティに進む必要があります。フォーム送信ボタンがアプリによって押されたことを検出し、何かを使用する方法はありますか? 送信ボタンが押されたときに新しいページを呼び出すことで shouldOverrideUrlLoading を試しました。次に (Uri.parse(url).getHost().equals("page url")){Intent... で if ステートメントを呼び出します。運が悪い。前もって感謝します!コード化されたページは次のとおりです。

public class WebViewActivity extends Activity { 
private WebView webView;
int backButtonCount = 0;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    //webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    Bundle extras = getIntent().getExtras();
        if(extras!=null){
            String rode=extras.getString("rode");
             }
        String ray = extras.getString("rode");

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://mywebsite.com/SubDir/user_man.php?user=" + ray);

}


private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (Uri.parse(url).equals("http://mywebsite.com/SubDir/process_prof.php")) {
             return false;
        }

        Intent ik = new Intent(WebViewActivity.this, master_menu.class);
        startActivity(ik);
        finish();
            return true;
    }
}   

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_bar_two, menu);
        return true;
    }

    @Override
    public boolean    onOptionsItemSelected(MenuItem item) {
    if  (item.getItemId()==R.id.action_selected){ 
        Intent iw = new Intent(this,GetUserEmail.class);
    startActivity(iw);
    finish();
    }
    else

        if  (item.getItemId()==R.id.action_cancel){ 
            Intent iw = new Intent(this,RegisterActivity.class);
        startActivity(iw);
        finish();
        }
        return true;
    }   
    public void onBackPressed()
    {
        if(backButtonCount >= 1)
        {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
        else
        {
            Toast.makeText(this, "Press the back button again to close.", Toast.LENGTH_SHORT).show();
            backButtonCount++;
        }
    }
4

2 に答える 2

0

if ステートメントの問題は、URL 全体ではなくホスト名 (www.google.com) のみを返す getHost() だと思います。それを削除してみてください。一致する場合、ifステートメントはtrueを返すと思います。

于 2013-10-31T19:01:46.253 に答える