#ANDROID - Toogle Button Kullanımı (Ve Daha Niceleri)
Toogle Button'dan bahsedecek olursak aynı checkbox tarzında on ya da off olan bir button türüdür kendisi. Şimdi uygulamamızda bir şifre alanı bulunacak toogle button açık olduğunda bu şifrenin karakterleri "•" şeklinde, kapalı olduğunda ise tüm karakterleri açık şekilde görünecek.
Bunun için textplay.xml ve TextPlay.java dosyalarımızı oluşturuyoruz.
Tasarımımız bu şekilde olacak:
- Şifremizi gireceğimiz EditText alanı.
- Girilen şifreyle işlem yapabilmemiz için bir adet "Gönder" butonu.
- Şifreyi açıp/kapatmak için bir adet toogle buton.
- Göndere tıkladıktan sonra içerisine bir şeyler yazdıracağımız bir adet TextView alanı.
Not: Bu nesnelerin dizilimlerini LinearLayout yardımıyla yapıyoruz.
textplay.xml dosyası:
TextPlay.java dosyası:
Evet kodlarımızı incelediğimizde öncelikle layout sayfamızda kullandığımız nesnelerimizin ilklemesini yapıyoruz. Bunun için onCreate metodunda kalabalık yapmaması adına bir ilkleme() metodu oluşturduk.
onCreate metodunun içerinde iki butonumuzunda click olaylarını atadık. Unutulmaması gereken çok önemli bir konu daha var o da onClickListener'ı sınıfımıza implements ediyoruz. Eğer bunu yapmaksak click olaylarını dinleyemeyiz.
onClick metodunun içerisinde bir switch kullanarak tıklanılan butonun id değerini alıyoruz bu id değerine göre case kullanarak işlem yaptıracağız. Tabii ki layout sayfasında bu butonlara onClick özelliği vererek direkt olarak click metotlarını oluşturabilirdik fakat bu da işin değişik bir boyutu ilerleyen zamanlarda bize lazım olabilir.
Eğer tıklanılan buton tbDegistir id'li butonsa parolayı gösterme/gizleme işlemini yapıyoruz. Eğer tıklanılan buton bGonder id'li butonsa ve EditText içersindeki yazı "sol" ise yazıyı sola, "sağ" ise yazıyı sağa dayıyor, "orta" ise yazıyı ortalıyor. Son olarak eğer yazı "Hakan" ise random (rastgele) olarak yazı boyutu ve renk tanımlayarak yine random olacak şekilde yazıyı hizalıyor.
Eğer EditText'e girilen değer bunlardan hiçbiri değilse TextView'imize "Geçersiz değer." yazdırıyoruz.
Böylelikle bu uygulamamızı da tamamlamış olduk. Bir dipnot olarak Activity'i AndroidManifest.xml dosyasında tanıtmayı unutmayın.
Bunun için textplay.xml ve TextPlay.java dosyalarımızı oluşturuyoruz.
Tasarımımız bu şekilde olacak:
- Şifremizi gireceğimiz EditText alanı.
- Girilen şifreyle işlem yapabilmemiz için bir adet "Gönder" butonu.
- Şifreyi açıp/kapatmak için bir adet toogle buton.
- Göndere tıkladıktan sonra içerisine bir şeyler yazdıracağımız bir adet TextView alanı.
Not: Bu nesnelerin dizilimlerini LinearLayout yardımıyla yapıyoruz.
textplay.xml dosyası:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="25dp"
android:background="#CCCC00">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/etGirilenMetin"
android:hint="Bir şeyler yazın... "
android:layout_marginTop="20dp"
android:password="true"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="100"
android:orientation="horizontal">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/bGonder"
android:text="Gönder"
android:layout_weight="25"/>
<ToggleButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tbDegistir"
android:layout_weight="75"
android:checked="false"/>
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tvDegistirilecekYazi"
android:text="............."
android:textSize="35dp"
android:gravity="center"
android:layout_marginTop="30dp"/>
</LinearLayout>
TextPlay.java dosyası:
package com.hakancengiz.blogders;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.InputType;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;
import java.util.Random;
public class TextPlay extends Activity implements OnClickListener {
EditText girilenMetin;
Button gonder;
ToggleButton degistir;
TextView degistirilecekYazi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.textplay);
ilkleme();
degistir.setOnClickListener(this);
gonder.setOnClickListener(this);
}
private void ilkleme() {
girilenMetin = (EditText) findViewById(R.id.etGirilenMetin);
gonder = (Button) findViewById(R.id.bGonder);
degistir = (ToggleButton) findViewById(R.id.tbDegistir);
degistirilecekYazi = (TextView) findViewById(R.id.tvDegistirilecekYazi);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tbDegistir:
if (degistir.isChecked()) {
girilenMetin.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else {
girilenMetin.setInputType(InputType.TYPE_CLASS_TEXT);
}
break;
case R.id.bGonder:
String alinanYazi = girilenMetin.getText().toString();
degistirilecekYazi.setText(alinanYazi);
if (alinanYazi.contentEquals("sol")) {
degistirilecekYazi.setGravity(Gravity.LEFT);
} else if (alinanYazi.contentEquals("sag")) {
degistirilecekYazi.setGravity(Gravity.RIGHT);
} else if (alinanYazi.contentEquals("orta")) {
degistirilecekYazi.setGravity(Gravity.CENTER);
} else if (alinanYazi.contentEquals("hakan")) {
Random rnd = new Random();
degistirilecekYazi.setText("HAKAN");
degistirilecekYazi.setTextSize(rnd.nextInt(80));
degistirilecekYazi.setTextColor(Color.rgb(rnd.nextInt(265), rnd.nextInt(265), rnd.nextInt(265)));
switch (rnd.nextInt(3)) {
case 0:
degistirilecekYazi.setGravity(Gravity.LEFT);
break;
case 1:
degistirilecekYazi.setGravity(Gravity.CENTER);
break;
case 2:
degistirilecekYazi.setGravity(Gravity.RIGHT);
break;
}
} else {
degistirilecekYazi.setText("Geçersiz değer.");
}
break;
}
}
}
Evet kodlarımızı incelediğimizde öncelikle layout sayfamızda kullandığımız nesnelerimizin ilklemesini yapıyoruz. Bunun için onCreate metodunda kalabalık yapmaması adına bir ilkleme() metodu oluşturduk.
onCreate metodunun içerinde iki butonumuzunda click olaylarını atadık. Unutulmaması gereken çok önemli bir konu daha var o da onClickListener'ı sınıfımıza implements ediyoruz. Eğer bunu yapmaksak click olaylarını dinleyemeyiz.
onClick metodunun içerisinde bir switch kullanarak tıklanılan butonun id değerini alıyoruz bu id değerine göre case kullanarak işlem yaptıracağız. Tabii ki layout sayfasında bu butonlara onClick özelliği vererek direkt olarak click metotlarını oluşturabilirdik fakat bu da işin değişik bir boyutu ilerleyen zamanlarda bize lazım olabilir.
Eğer tıklanılan buton tbDegistir id'li butonsa parolayı gösterme/gizleme işlemini yapıyoruz. Eğer tıklanılan buton bGonder id'li butonsa ve EditText içersindeki yazı "sol" ise yazıyı sola, "sağ" ise yazıyı sağa dayıyor, "orta" ise yazıyı ortalıyor. Son olarak eğer yazı "Hakan" ise random (rastgele) olarak yazı boyutu ve renk tanımlayarak yine random olacak şekilde yazıyı hizalıyor.
Eğer EditText'e girilen değer bunlardan hiçbiri değilse TextView'imize "Geçersiz değer." yazdırıyoruz.
Böylelikle bu uygulamamızı da tamamlamış olduk. Bir dipnot olarak Activity'i AndroidManifest.xml dosyasında tanıtmayı unutmayın.
<activity
android:name=".TextPlay"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.TEXTPLAY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

Hiç yorum yok :
Yorum Gönder