Intent yardımıyla başka bir aktiviteyi başlatabilir, bir servisin çalışmasını tetikleyebilir veya gerçekleşen bir olaydan bütün sistemi haberdar edebilirsiniz. Bu da Intentleri, uygulamaları kendi içerisinde ve farklı uygulamaları birbirleri arasında bağlayan bir köprü haline getirir. En kısa tanımıyla bir şeyin yapılmasını isteyen bir mesaj nesnesidir. Ayrıca Intentler activity veya servicelere gönderilecek bir takım bilgileri paketlemeye de yarar.
Bu uygulamamızda kullanıcıdan kullanıcı adı ve şifre işlemlerini birinci pencerede isteyeceğiz. Eğer bilgiler doğruysa bu bilgileri ikinci pencereye gönderip orada listelenmesini sağlayacağız. Ayrıca ikinci pencereden birinci pencereye geri dönme işlemini de gerçekelştireceğiz. Öncelikle pencereler arası geçiş nasıl yapılıyor ona bakalım. Birinci activity için activity_main.xml tasarım dosyasını kullanacağız. İçeriği aşağıdaki gibi olsun.
<?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:layout_marginTop="35dp"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kullanıcı Girişi"
android:textSize="35sp" />
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Kullanıcı Adı"
android:textSize="20sp">
<requestFocus />
</EditText>
<EditText
android:id="@+id/etPass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Şifre"
android:textSize="20sp"></EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/gonder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gönder"></Button>
<Button
android:id="@+id/temizle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Temizle"></Button>
</LinearLayout>
</LinearLayout>
Birinci activity için kullanılan MainActivity.java dosyası aşağıdaki gibi olacaktır.
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
Context context = this;
EditText etName, etPass;
Button gonder, temizle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etName = findViewById(R.id.etName);
etPass = findViewById(R.id.etPass);
gonder = findViewById(R.id.gonder);
temizle = findViewById(R.id.temizle);
gonder.setOnClickListener(this);
temizle.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.gonder:
if (etName.getText().toString().equalsIgnoreCase("admin")
&& etPass.getText().toString().equals("123")) {
Intent intent = new Intent(context, SecondActivity.class);
startActivity(intent);
} else {
Toast.makeText(context, "Kullanıcı adı ve şifre hatalı",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.temizle:
etName.setText("");
etPass.setText("");
etName.requestFocus();
break;
}
}
}
İkinci activity için tasarım dosyası second_layout.xml olsun.
<?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">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="İkinc Ekran"
android:textSize="35dp"></TextView>
</LinearLayout>
İkinci activity için kullanılan SecondActivity.java dosyası aşağıdaki gibi olacaktır.
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
}
}
Uygulamayı kaydedip çalıştırabiliriz. Bu arada manifest dosyasına aşağıdaki satırı eklemeyi unutmayalım.
<activity android:name=".SecondActivity"></activity>
Uygulamayı çalıştırdığınızda kullanıcı adı ve şifreyi doğru girdiğinizde ikince ekran gelir. Biz burada girilen kullanıcı adını ve şifreyi ikinci ekranda göstereceğiz. Böylece ekranlar arasında işlemleri gerçekleştirmiş olacağız. Bundan dolayı MainActivity.java dosyasında gönderme işlemini yapalım.
intent.putExtra("isim",etName.getText().toString());
intent.putExtra("sifre",etPass.getText().toString());
Şimdi bu değerlerin ikinci sayfada alınmasını ve değerlerin gösterilmesini yapacağız. Öncelikle second_layout.xml dosyasını düzenleyelim.
<?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">
<TextView
android:id="@+id/txtGelenDeger"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="İkinci Sayfa"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textSize="35sp" />
<Button
android:id="@+id/btnSiteyeGit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Siteye Git" />
<Button
android:id="@+id/btnGeri"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Geri" />
</LinearLayout>
Şimdi de SecondActivity.java dosyasını düzenleyelim.
Button btnSiteyeGit, btnGeri;
TextView txtGelenDeger;
Context context = this;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
txtGelenDeger = (TextView) findViewById(R.id.txtGelenDeger);
Intent intent = getIntent();
String ad = intent.getStringExtra("isim");
String sifre = intent.getStringExtra("sifre");
txtGelenDeger.setText("Hoş Geldin " + ad + "\nŞifreniz : " + sifre);
btnSiteyeGit = (Button) findViewById(R.id.btnSiteyeGit);
btnGeri = (Button) findViewById(R.id.btnGeri);
btnSiteyeGit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.maarificedid.com"));
startActivity(intent);
}
});
btnGeri.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
}
});
}
Projeyi kaydedip çalıştıralım. Kullanıcı adı ve şifrenin ikinci sayfaya geçtiğini ve sitenin açıldığını görürsünüz.
|