簡體   English   中英

您能幫我提供這個代碼嗎?

[英]Can you please help me with this code?

問題:當我輸入一個ID並按下按鈕時,它不會加載該ID的網頁...

“一個網址”是我要創建的網站頁面,(出於多種原因被隱藏)

它應該可以正常工作,它會加載第一個站點,但是當我嘗試調用ID時,WebView不會改變...有人可以幫助我嗎? -謝謝,JG1

我的代碼:

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    wv.setWebViewClient(new OurViewClient());
    wv.getSettings().setJavaScriptEnabled(true);
    try {
        String url = "a url";
        wv.loadUrl(url);
    } catch (Exception e) {
        e.printStackTrace();
    }
    String lid = "0";

    //Clicking button changes to the color

}

final EditText idbox = (EditText) findViewById(R.id.editText1);
final Button idbutton = (Button) findViewById(R.id.idbtn);
final WebView wv = (WebView) findViewById(R.id.webView1);

public void onClick(View v) {
    idbutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            String lid = idbox.getText().toString();
            if (lid == "1") {
                wv.setWebViewClient(new OurViewClient());
                try {
                    String urla = "a url";
                    wv.loadUrl(urla);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (lid == "2") {
                wv.setWebViewClient(new OurViewClient());
                try {
                    String urlb = "a url";
                    wv.loadUrl(urlb);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (lid == "3") {
                wv.setWebViewClient(new OurViewClient());
                try {
                    String urlc = "a url";
                    wv.loadUrl(urlc);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    });
}

我猜,您被稱為相同的URL值,例如(“ a url”)。 如果是,請嘗試在Web視圖中加載其他URL。

如果沒有,請對您的代碼進行以下更改,

  • 放置斷點以調試獲得EditText值的代碼。

    字符串蓋子= idbox.getText()。toString(); //檢查蓋為不是

  • 更改這樣的if條件,

    if(lid.equalsIgnoreCase(“ 1”)){//渲染網頁的任務}

  • 檢查您的自定義視圖客戶端類。

沒關系, 您編寫的onClick()方法定義是錯誤的!

我很困惑,因為

  • 您是否一直在為XML中的按鈕添加onclick( android:onClick =“ onClick” )函數。

    盡管我在您的代碼中做了一些更改,

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2" >

    <EditText
        android:id="@+id/urlValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2dp"
        android:layout_weight="1.5" />

    <Button
        android:id="@+id/urlBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2dp"
        android:layout_weight="0.5" 
        android:text="load"/>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

MainActivity.java:

public class MainActivity extends Activity {

private EditText getUrlValue;
private Button loadUrl;
private WebView webView;
String loadId = "";
String URL_ONE = "a_url";
String URL_TWO = "b_url";
String URL_THREE = "c_url";

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

    getUrlValue = (EditText)findViewById(R.id.urlValue);
    loadUrl = (Button)findViewById(R.id.urlBtn);
    webView = (WebView)findViewById(R.id.webView);

    //initial view for webView
    getUrlValue.setText("1"); //here web page will load first url= "a url"

    webView.setWebViewClient(new OurViewClient());

    //onClick Event for load url button
    loadUrl.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            loadId = getUrlValue.getText().toString();
            if(loadId.equalsIgnoreCase("1")){
                try{

                    webView.loadUrl(URL_ONE);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
            }
            else if(loadId.equalsIgnoreCase("2")){
                try{
                    webView.loadUrl(URL_TWO);
                    }catch (Exception e){
                        e.printStackTrace();
                    }

            }
            else{
                try{
                    webView.loadUrl(URL_THREE);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
           }
        }
       });

    }
 }
  • 請記住在清單xml文件中添加Internet權限。

祝您編程愉快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM