从android中OnCreate外部的方法与webview交互

从android中OnCreate外部的方法与webview交互,android,Android,我有一个问题一直在发生,我想知道如何解决它。我希望能够与视图交互,在本例中,特别是来自oncreate外部的webview,以便我的方法能够与oncreate中定义的webview交互 这是我想做的一个例子。在搜索语音阵列中,我检查了用户是否说了“go”,如果他们说了,我希望按下go按钮,或者只是执行go按钮可以执行的代码。我希望我解释得足够好,如果你需要澄清,请让我知道,提前感谢 import java.util.ArrayList; import android.app.Activity;

我有一个问题一直在发生,我想知道如何解决它。我希望能够与视图交互,在本例中,特别是来自oncreate外部的webview,以便我的方法能够与oncreate中定义的webview交互

这是我想做的一个例子。在搜索语音阵列中,我检查了用户是否说了“go”,如果他们说了,我希望按下go按钮,或者只是执行go按钮可以执行的代码。我希望我解释得足够好,如果你需要澄清,请让我知道,提前感谢

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class web extends Activity {
    static final int check = 111;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web);
        final WebView webBrowser = (WebView) findViewById(R.id.webview);
        webBrowser.setWebViewClient(new cpViewClient());
        webBrowser.getSettings().setJavaScriptEnabled(true);
        webBrowser.getSettings().setLoadWithOverviewMode(true);
        webBrowser.getSettings().setUseWideViewPort(true);
        webBrowser.loadUrl("http://www.google.com");
        final InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

        Button bGo = (Button) findViewById(R.id.go);
        Button bBack = (Button) findViewById(R.id.back);
        Button bForward = (Button) findViewById(R.id.forward);
        Button bRefresh = (Button) findViewById(R.id.refresh);
        Button bClearHistory = (Button) findViewById(R.id.clearhistory);
        final EditText etUrl = (EditText) findViewById(R.id.url);

        bGo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String enteredUrl = etUrl.getText().toString();
                enteredUrl = enteredUrl.toLowerCase();
                int len = enteredUrl.length();
                /*
                 * if (enteredUrl.substring(0, 3).equals("www")) enteredUrl =
                 * "http://" + enteredUrl; else if (enteredUrl.substring(0,
                 * 11).equals("http://www.")) //Do nothing its perfect
                 * Log.d("URL", "The Url is fine"); else enteredUrl =
                 * "http://www." + enteredUrl;
                 * 
                 * String dot1 = enteredUrl.substring(len-5, len-4); String dot2
                 * = enteredUrl.substring(len-4, len-3); if (!dot1.equals(".")
                 * || !dot2.equals(".")) enteredUrl = enteredUrl + ".com";
                 */
                if (enteredUrl.indexOf("http://") == -1
                        & enteredUrl.indexOf("www.") == -1) {
                    enteredUrl = "http://www." + enteredUrl;
                } else if (enteredUrl.indexOf("http://") == -1) {
                    enteredUrl = "http://" + enteredUrl;
                }

                if (enteredUrl.indexOf(".com") == -1
                        & enteredUrl.indexOf(".org") == -1
                        & enteredUrl.indexOf(".net") == -1
                        & enteredUrl.indexOf(".mil") == -1
                        & enteredUrl.indexOf(".gov") == -1
                        & enteredUrl.indexOf(".edu") == -1
                        & enteredUrl.indexOf(".info") == -1) {
                    enteredUrl = enteredUrl + ".com";
                }

                webBrowser.loadUrl(enteredUrl);
                etUrl.setText(enteredUrl);
                imm.hideSoftInputFromWindow(etUrl.getWindowToken(), 0);
            }

        });
        bBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (webBrowser.canGoBack())
                    webBrowser.goBack();
            }

        });
        bForward.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (webBrowser.canGoForward())
                    webBrowser.goForward();
            }

        });
        bRefresh.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                webBrowser.reload();
            }

        });
        bClearHistory.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                webBrowser.clearHistory();
            }

        });
        Button VR = (Button) findViewById(R.id.webvoice);
        VR.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                getvoice();
            }

        });



    }
    public void getvoice() {
        Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        startActivityForResult(i, check);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if (requestCode == check && resultCode == RESULT_OK) {
            result = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            final TextView tvvoicearray = (TextView) findViewById(R.id.tvvoicearray);
            tvvoicearray.setText(result.get(0));
            searchvoicearray();
        }

        super.onActivityResult(requestCode, resultCode, data);
    }

    public void searchvoicearray() {
        // Log.d("DEBUGGINGG",result.get(0));
        // System.out.println(result);
        int size = result.size();
        int i = 0;
        while (i < size) {
            String s = result.get(i);
            // next line removes all spaces in the string
            // s= s.replaceAll(" ", "");
            if (s.indexOf("go") != -1 ) {
                i = size;
                //i want the button go to be pressed or its action to be completed.

                if (webBrowser.canGoBack())
                webBrowser.goBack();
            } 

            else if (s.indexOf("back") != -1) {
                i = size;
                if (webBrowser.canGoBack())
                    webBrowser.goBack();
            } 

            else {
                System.out.println(result.get(i) + " is not internet");
                Log.d("DEBUGGINGG", result.get(i) + " is not internet");
                // }
                i++;
            }
        }

    }

    ArrayList<String> result = new ArrayList<String>();

}
import java.util.ArrayList;
导入android.app.Activity;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入android.speech.RecognizerIntent;
导入android.util.Log;
导入android.view.view;
导入android.view.inputmethod.InputMethodManager;
导入android.webkit.WebView;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类web扩展活动{
静态最终整数检查=111;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
最终WebView webBrowser=(WebView)findViewById(R.id.WebView);
setWebViewClient(新的cpViewClient());
webBrowser.getSettings().setJavaScriptEnabled(true);
webBrowser.getSettings().SetLoadWithOverview模式(true);
webBrowser.getSettings().setUseWideViewPort(true);
webBrowser.loadUrl(“http://www.google.com");
最终InputMethodManager imm=(InputMethodManager)getSystemService(Context.INPUT\u方法\u服务);
按钮bGo=(按钮)findViewById(R.id.go);
按钮bBack=(按钮)findViewById(R.id.back);
按钮B前进=(按钮)findViewById(R.id.forward);
按钮刷新=(按钮)findViewById(R.id.refresh);
按钮bClearHistory=(按钮)findViewById(R.id.clearhistory);
最终EditText etUrl=(EditText)findViewById(R.id.url);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串enteredUrl=etUrl.getText().toString();
enteredUrl=enteredUrl.toLowerCase();
int len=enteredUrl.length();
/*
*如果(enteredUrl.substring(0,3).equals(“www”))enteredUrl=
*“http://”+enteredUrl;else if(enteredUrl.substring(0,
*11).等于(”http://www.)/什么都不做,这是完美的
*Log.d(“URL”,“URL很好”);否则输入URL=
* "http://www.“+enteredUrl;
* 
*字符串dot1=输入的所有子字符串(len-5,len-4);字符串dot2
*=输入的所有子字符串(len-4,len-3);如果(!dot1.等于(“.”)
*| |!dot2.equals(“.”)enteredUrl=enteredUrl+“.com”;
*/
如果(enteredUrl.indexOf(“http:/”)==-1
&enteredUrl.indexOf(“www.”==-1){
enteredUrl=”http://www.“+enteredUrl;
}else if(enteredUrl.indexOf(“http:/”)==-1){
enteredUrl=“http://”+enteredUrl;
}
如果(enteredUrl.indexOf(“.com”)=-1
&enteredUrl.indexOf(“.org”)==-1
&enteredUrl.indexOf(“.net”)==-1
&输入的所有索引(“.mil”)==-1
&enteredUrl.indexOf(“.gov”)==-1
&enteredUrl.indexOf(“.edu”)==-1
&enteredUrl.indexOf(“.info”)==-1){
enteredUrl=enteredUrl+“.com”;
}
webBrowser.loadUrl(enteredUrl);
etUrl.setText(enteredUrl);
imm.hideSoftInputFromWindow(etUrl.getWindowToken(),0);
}
});
bBack.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(webBrowser.canGoBack())
webBrowser.goBack();
}
});
bForward.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(webBrowser.canGoForward())
webBrowser.goForward();
}
});
bRefresh.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
webBrowser.reload();
}
});
bClearHistory.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
webBrowser.clearHistory();
}
});
按钮VR=(按钮)findViewById(R.id.webvoice);
VR.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
getvoice();
}
});
}
公共语音{
意图i=新意图(识别者意图、行动、识别、讲话);
i、 putExtra(RecognizerIntent.EXTRA_语言_模型,
识别者意图、语言、模型、自由形式);
startActivityForResult(一,检查);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
//TODO自动生成的方法存根
if(requestCode==check&&resultCode==RESULT\u确定){
结果=数据
.getStringArrayListExtra(识别器意图.额外结果);
最终文本视图tvvoicearray=(文本视图)findViewById(R.id.tvvoicearray);
tvvoicearray.setText(result.get(0));
searchvoicearray();
static final int check = 111;
private WebView webBrowser;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.web);
    webBrowser = (WebView) findViewById(R.id.webview);
public class web extends Activity {

    //Declare your member objects/variables here
    static final int check = 111;
    WebView webBrowser;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web);
        webBrowser = (WebView) findViewById(R.id.webview);
        ...
        }
...        
}