Tạo Browser đơn giản cho Android – Phần 2

Trong phần 1 bạn đã học được cách tạo 1 Browser cực kỳ đơn giản bằng cách sử dụng WebView. Tuy nhiên Browser đã làm trong phần 1 chưa phải là 1 Browser đúng nghĩa, đó chỉ là 1 cửa sổ xem website có thể được gắn vào trong 1 ứng dụng Android. Trong phần 2 này bạn sẽ học cách làm 1 Browser hoàn chỉnh hơn, có thể hoạt động độc lập và vẫn sử dụng WebView.

1. Tạo 1 project mới có Create Activity tên là Main.

2. main.xml có dạng:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<EditText android:layout_height="wrap_content"
android:id="@+id/urlTxt"
android:layout_width="400px">
</EditText>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/go"
android:text="Go">
</Button>
</LinearLayout>
<WebView  android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

</LinearLayout>

3. Main.java được xây dựng như sau:

public class Main extends Activity {
private WebView myWebView;

private EditText myURL_txt;
private Button go_btn;
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myURL_txt = (EditText)findViewById(R.id.urlTxt);
go_btn = (Button)findViewById(R.id.go);
myWebView = (WebView) findViewById(R.id.webView);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.yourdomain.com");
myWebView.setWebViewClient(new MyWebViewClient());
go_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl ("http://"+ myURL_txt.getText().toString());
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

4. Cuối cùng bạn cũng nhớ thay đổi AndroidManifest.xml cho phép kết nối với Internet

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Trong phần 3 của bài này sẽ phát triển browser trên thêm 1 bước với việc cho thêm công cụ phóng to, thu nhỏ (zoom in và zoom out).