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.
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.
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ş.
MyBrowser seçeneğini seçiyoruz ve web sayfasını görüyoruz.
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.