kodbankasi http://kodbankasi.org/kodbankasi

Android Web Browser Yapmak

Bu android programlama dersinde yazıda webview yardımıyla kendimize basit bir browser yani tarayıcı yapmaya çalışacağız.  Önceki yazılarda webview ile ilgili bir örnek yaptığım için üzerinde fazla durmadan direk uygulamamızı programlamaya geçelim. Uygulamamızda 1 edittext, 1 webview ve 5 adet buton kullanacağız.

Xml bölümünde bileşenleri attıktan sonraki görüntü :

browser1

Butonlara da sırasıyla bGit, bOnceki, bSonraki, bYenile, bTemizle id’lerini veriyoruz. Şimdi programımızın java yani ana kısmına geçiyoruz. Burada ilk önceliğimiz webview, edittext ve 5 adet butonu uygulamaya tanıtmak olacak. Bu aşamadan sonra aşağıdaki kodlarla webview oluşturuyoruz ve içerisine webviewClient nesne atıyoruz.

wv = (WebView)findViewById(R.id.WebSayfasi);
wv.getSettings().setJavaScriptEnabled(true);
wvc = new WebViewClient();
wv.setWebViewClient(wvc);

Sıra butonlarımıza click görevi atamaya geldi. Bunu da onclicklistener’i implement ederek switch case yardımıyla yapmak daha basit olacaktır.

@Override public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
case R.id.bGit:
wv.loadUrl("http://" + etUrl.getText().toString());
break;
case R.id.bSonraki:
if(wv.canGoForward())
wv.goForward();
break;
case R.id.bOnceki:
if(wv.canGoBack())
wv.goBack();
break;
case R.id.bYenile:
wv.reload();
break;
case R.id.bTemizle:
wv.clearHistory();
break;
}
}

Burada dikkat etmemiz gereken git butonumuzda url’de “http://” adresi olmadan program çalışmayacağıdır.

wv.loadUrl(“http://” + et.getText().toString());

O yüzden eklenmek zorundadır.  Url’nin http’den sonrasını da elimizle edittext’e yazdığımız adresten çekiyoruz. Programı çalıştırıp git butonuna bastığımızda aşağıdaki gibi görüntü elde edilecektir.

browser2

Birkaç sayfa değiştirerek ve yeni url’ler girerek diğer butonları da test edebilirsiniz. Butonların içerisindeki if bloğunda bulunan metodlar ise android içerisinde default olarak bulunan metodlardandır.

Android programlama dersleri ve java derslerine yoğunluğumdan dolayı bir süre ara vermiştim. Ancak zaman buldukça yeni makale ve yazılar yazmaya çalışacağım.

Aklınıza takılan bir şey olduğunda yorum satırından sorunuzu sorabilirsiniz, mümkün olduğunda her yoruma dönüş yapıyorum. Main class ve main.xml dosyalarını tümünü aşağıya ekliyorum.

MainActivity.java


package com.example.webbrowser;
import android.os.Bundle;
import android.annotation.SuppressLint;<
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener{
Button git,geri,ileri,temizle,yenile;
WebView wv;
EditText etUrl;
WebViewClient wvc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
git = (Button)findViewById(R.id.bGit); // Butonları tanımladık.
geri = (Button)findViewById(R.id.bOnceki);
ileri = (Button)findViewById(R.id.bSonraki);
yenile = (Button)findViewById(R.id.bYenile);
temizle = (Button)findViewById(R.id.bTemizle);
git.setOnClickListener(this);
geri.setOnClickListener(this);
ileri.setOnClickListener(this);
yenile.setOnClickListener(this);
temizle.setOnClickListener(this);
etUrl = (EditText)findViewById(R.id.editText1);
wv = (WebView)findViewById(R.id.WebSayfasi);
wv.getSettings().setJavaScriptEnabled(true);
wvc = new WebViewClient();
wv.setWebViewClient(wvc);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bGit:
wv.loadUrl("http://" + etUrl.getText().toString());
break;
case R.id.bSonraki:
if(wv.canGoForward())
wv.goForward();
break;
case R.id.bOnceki:
if(wv.canGoBack())
wv.goBack();
break;
case R.id.bYenile:
wv.reload();
break;
case R.id.bTemizle:
wv.clearHistory();
break;
}
}
}

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"
<EditText>
android:id="@+id/etUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
<EditText/>
<Button>
android:id="@+id/bGit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Git"
<LinearLayout>
android:id="@+id/L1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
<Button>
android:id="@+id/bOnceki"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Geri"/>
<Button>
android:id="@+id/bSonraki"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="İleri" />
<Button
android:id="@+id/bYenile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yenile" />
<Button>
android:id="@+id/bTemizle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Temizle" />
<LinearLayout />
<WebView>
android:id="@+id/WebSayfasi"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout/>

Bir önceki yazımız olan Android Spinner kullanımı başlıklı yazımızı da inceleyebilirsiniz.

9 Yorumlar

  1. Geçen haftaki üniversite ödevimdi sayenizde zorlanmadan yaptım teşekkürler

  2. edittext1 tanımlamada bi hata var sanırım tekrar bakmanızı öneririm :d

  3. bu uygulamaya option menu eklemede bi sakınca varmı sıkıntı cıkarmaz değilmi

  4. Kardeş androidmanifest.xml dosyasına bunu eklmezseniz internete girmez.Emeğine Sağlık

  5. Hocam herşey tamam proje açılıyor da google.com.tr yazınca webvievde wep page not avaible yazıyor altından kalkamadım sorun nedir acaba

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Bu yazı da ilginizi çekebilir !

accelerometer

Android Sensör Kullanımı

Bir süre ara verdiğimiz android derslerimize kaldığımız yerden devam ediyoruz. Bir önceki makalemizde options menü ...