Anasayfa Mobil Android Programlama Ders 35: Basit Bir Tarayıcı Oluşturuyoruz

Android Programlama Ders 35: Basit Bir Tarayıcı Oluşturuyoruz

Android Programlama Ders 35‘te örnek projeyi kullanarak basit bir tarayıcı oluşturmayı öğreneceğiz.

Geçen derslerimizde Intent’e action’u kullanarak (action = ACTION_VIEW) ve data = Uri http adresiyle tarayıcı kullanarak web sayfası açmayı öğrendik. Intent’i kullanarak kendimiz basit bir tarayıcı oluşturabiliriz. Bunun için Intent Filter’i ayarlamamız ve WebView bileşeni kullanmamız gerekecek.

Birinci ekranda Intent’i çalıştıran buton ve ikinci ekranda WebView olacak.

Yeni bir proje oluşturalım:

  • Project name: P0035_SimpleBrowser
  • Build Target: Android 4.2
  • Application name: SimpleBrowser
  • Package name: tr.example.simplebrowser
  • Create Activity: MainActivity

Main.xml’i açalım ve ekranı oluşturalım:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical">
 <Button
 android:id="@+id/btnWeb"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="web">
 </Button>
 </LinearLayout>

Ekranda sadece bir buton mevcut.

MainActivity.java dosyasını açıyoruz ve kodu yazıyoruz.

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    (findViewById(R.id.btnWeb)).setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com.tr/ ")));
      }
    });
  }
}

Farketiyseniz butonu doğrudan SetOnClickListener metodunda belirtiyorum. Ayrıca Intent’i doğrudan StartActivity metodunda oluşturdum. Böylece kodu kısaltmış oldum. Kodun amacı butona basıldığı zaman Intent’i çalıştırmak. Bu demek ki   https://www.google.com.tr/ web sayfası açmak istiyoruz.

İkinci etkileşimi (Activity) oluşturalım. İlk başta layout dosyayı browser.xml oluşturuyoruz:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
<WebView
 android:id="@+id/webView"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
</WebView>
</LinearLayout>

Ekranda WebView bileşeni olacak.

İkinci etkileşimi oluşturalım BrowserActivity.java:

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;

public class BrowserActivity extends Activity {

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

    WebView webView = (WebView) findViewById(R.id.webView);
    Uri data = getIntent().getData();
    webView.loadUrl(data.toString());
  }
}

Yukarıdaki kodda WebView belirtiyoruz. Sonra Intent üzerinden datayı okuyoruz ve diziyi WebView’a gönderiyoruz. Yeni etkileşimi Manifest dosyasında kayıt yapmayı unutmuyoruz. Etkileşime Intent Filter eklememiz gerekecek. Intent Filtre ise action = ACTION_VIEW ve data için Scheme = https olsun.

ManifetsData

Bunun anlamı Intent’e Uri https adresi tutacak. Category = Default ve BrowserActivity etkileşim için Label MyBrowser olsun. İnternete erişimi sağlamak için Manifest dosyasında Permissions sekmede Uses Permission = android.permission.INTERNET eklememiz gerekiyor.

ManifetsPermission

Projeyi kaydedelim ve çalıştıralım. Butona basıldığı zaman sistem bize iki seçim sunuyor. Birincisi sistemde olan ve ikincisi de bizim oluşturduğumuz tarayıcı seçmek. Yani Intent sistemde iki tane http gösterebilecek etkileşimi (Activity) bulmuş.

web

MyBrowser seçeneğini seçiyoruz ve web sayfasını görüyoruz.

google

Manifest dosyasının tam kodu:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tr.example.simplebrowser"
android:versionCode="1"
android:versionName="1.0" >
 <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
 <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="tr.example.simplebrowser.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Ders Sonu Notları:

Bu derste Uri kullanarak basit bir tarayıcının nasıl oluşturulacağını öğrendik. Gelecek derslerimizde Preferences özelliğini kullanarak verileri kaydetmeyi öğreneceğiz.