Android Programlama öğrenmeye devam ediyoruz. Bu derste uygulamanın bildirimleri (Logs) ve çıkan mesajlarla detaylı bir şekilde öğreneceğiz…
Yeni bir proje oluşturalım:
- Project name: P010-LogAndMess
- Build Target: Android 4.2
- Application name: LogAndMess
- Package name: tr.androidApp.logandmess
- Create Activity: MainActivity
Main.xml içinde daha önce derslerde (8’ci ders) kullanılan ekranı oluşturalım:
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”match_parent”
android:layout_width=”match_parent”
android:orientation=”horizontal”>
<LinearLayout
android:id=”@+id/linearLayout1″
android:layout_height=”match_parent”
android:orientation=”vertical”
android:layout_width=”match_parent”
android:layout_margin=”30dp”>
<TextView
android:layout_width=”wrap_content”
android:text=”TextView”
android:layout_height=”wrap_content”
android:id=”@+id/tvOut”
android:layout_gravity=”center_horizontal”
android:layout_marginBottom=”50dp”>
</TextView>
<Button
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/btnOk”
android:text=”OK”
android:layout_width=”100dp”>
</Button>
<Button
android:layout_height=”wrap_content”
android:layout_gravity=”center_horizontal”
android:id=”@+id/btnCancel”
android:text=”Cancel”
android:layout_width=”100dp”>
</Button>
</LinearLayout>
</LinearLayout>
Butonlara basıldığı zaman metin değişecektir. Bunu işletici – etkileşim (Activity) gerçekleştiriyor.
public class MainActivity extends Activity implements OnClickListener {
TextView tvOut;
Button btnOk;
Button btnCancel;/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);// View-nesneleri buluyoruz
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);// dinleyiciyi butonlara bagliyoruz
btnOk.setOnClickListener(this);
btnCancel.setOnClickListener(this);
}@Override
public void onClick(View v) {
// id kullanarak hangi buton basilmis ogreniyoruz
switch (v.getId()) {
case R.id.btnOk:
// ОK buton
tvOut.setText(“ОK butona bastiniz”);
break;
case R.id.btnCancel:
// Cancel buton
tvOut.setText(“Cancel butona bastiniz”);
break;
}
}}
Kaydettikten sonra uygulamayı çalıştıralım. Uygulamanın düzgün çalıştığını kontrol edelim.
1-Uygulamanın bildirimleri
Uygulamanın çalıştığını test ettiğimiz zaman, bildirimleri (Logs) kullanabiliriz. Bildirimleri görmek için LogCat penceresi kullanılıyor. LogCat penceresini görmek için Window > Show View > Other menüsünü açmamız gerekir. Açan pencerede Android > LogCat (deprecated) seçiyoruz.
Karşımıza LogCat sekmesi çıkıyor.
Bu sekmeyi detaylı inceleyelim. Bildirimler (Logs) farklı önem seviyeleri taşıyorlar: ERROR, WARN, INFO, DEBUG, VERBOSE (En önemliden, en önemsize doğru sıralanmış hata listesidir). Menünün üst sağ kısmında göreceğiniz V, D, I, W, ve E sembollerine sahip butonlar bildirimleri filtrelemek için kullanılıyor. Bu butonları denebilirsiniz. Bildirim filtresi sadece kendi seviyesini göstermiyor. Daha da önemli bildirimleri gösteriyor. İleride kendi filtrelerimizi yaratmayı, silmeyi ve düzeltmeyi öğreneceğiz.
Şimdi yeni bildirimleri oluşturmayı öğreneceğiz. Log klası ve bu klasa ait metodları (Log.v() Log.d() Log.i() Log.w() ve Log.e()) kullanarak bunu basit bir şekilde yapabiliriz. Metodların isimleri bildirimlerin önem seviyesi belirliyor.
MainActivity.java içinde kodu değiştirelim. Kodun açıklamalarını Log.d metodu kullanarak DEBUG – bildirimlere ekleyelim. Log.d metodu iki değişkeni kullanıyor. Birinci TAG ve ikincisi mesaj. Tag’in bir işaretçidir, sistemin bildirimleri arasında bizim mesajı bulmayı kolaylığını sağlıyor. Uygulamanın kodunun içine TAG’leri ekleyelim.
package tr.androidApp.logandmess;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
TextView tvOut;
Button btnOk;
Button btnCancel;
private static final String TAG = “myLogs”;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// View-nesneleri buluyoruz
Log.d(TAG, “View-nesneleri buluyoruz”);
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);
// dinleyiciyi butonlara bagliyoruz
Log.d(TAG, “dinleyiciyi butonlara bagliyoruz”);
btnOk.setOnClickListener(this);
btnCancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// id kullanarak hangi buton basilmis ogreniyoruz
Log.d(TAG, “id kullanarak hangi buton basilmis ogreniyoruz”);
switch (v.getId()) {
case R.id.btnOk:
// ОK buton
tvOut.setText(“ОK butona bastiniz”);
break;
case R.id.btnCancel:
// Cancel buton
tvOut.setText(“Cancel butona bastiniz”);
break;
}
}
}
Eclipse bir hata oluştuğunu bize bildirecektir. Bunun sebebi Log klasının tanımlanmamış olmasıdır. Bu problemi çözmek için CTRL+SHIFT+O tuşlarına bastıktan sonra android.util.Log’u seçelim. Programı çalıştıralım ve butonlara basıldıktan sonra bildirimlere bakalım.
Eğer karşınıza böyle bir yazı geliyor ise demek ki siz yeni emülatorü kullanıyorsunuz. Normal bildirimleri görmek için LogCat sekmeyi seçiniz. DeviceId Unknown ya da deprecated hatalarını böylece anlayabilirsiniz. Çözüm az önce belirttiğimiz gibi LogCat’i kullanmaktır.
Butonlara bastığı zaman bizim yazdığımız bildirimleri görebiliriz. Bildirimleri daha uygun bir biçimde görmek için filtreleri ekleyebiliriz. Bunu yapmak için + işarete basıyoruz.
Filtrenin ismi herhangi bir isim olabilir mesela «My logs». Log Tag – bizim kodta kullandığımız Log.d metodunda TAG “myLogs”. Pid işlemin id’si boş bırakabiliriz. Log Message – mesajlara göre filtreyebiliriz. Level – seviye debug seçelim. Ve OK butona basıyoruz. Sol tarafta Mylogs sekmenin oluştuğunu görebiliriz.
2-Bildirim mesajları
Uygulamalar bildirim mesajları Toast metodu ile kullanılır. Uygulamamızda onClick metodu değiştirip bildirim mesajları kullanabiliriz. Mesela butonlara bastığı zaman hangi butona bastınız bildirim mesajları bize cevabı verecektir.
public void onClick(View v) {
// id kullanarak hangi buton basilmis ogreniyoruz
Log.d(TAG, “id kullanarak hangi buton basilmis ogreniyoruz”);
switch (v.getId()) {
case R.id.btnOk:
// OK buton
Log.d(TAG, “Ok buton”);
tvOut.setText(“OK butona bastiniz”);
Toast.makeText(this, “OK butona bastiniz”, Toast.LENGTH_LONG).show();
break;
case R.id.btnCancel:
// Cancel buton
Log.d(TAG, “Cancel buton”);
tvOut.setText(“Cancel butona bastiniz”);
Toast.makeText(this, “Cancel butona bastiniz”, Toast.LENGTH_LONG).show();
break;
}
}
}
MakeText metodu Toast View – nesneyi yaratıyor.
Metodun parametreleri:
– context – Etkileşim (Activity) this kullanıyoruz.
– text – göstereceğimiz mesajı için kullanılır.
– duration – bildirimin zaman uzunluğu belirliyor (Toast.LENGTH_LONG – uzun zaman, Toast.LENGTH_SHORT – kısa zaman).
Toast’u oluştuk şimdi bildirimi ekranda görmek için show() metodu kullanılır. Projeyi kaydediyoruz, çalıştırıyoruz ve kontrol ediyoruz.
Ders Sonu Notları:
Bu derste uygulamanın bildirimleri (Logs) ve çıkan mesajları nasıl oluşturduğunu öğrendik.
Sonraki derste menü nasıl oluşturduğunu inceleyeceğiz ve böylece Android Programlama Dersleri’mizde adım adım ilerleyeceğiz.