Bu yazıda android de iki ekran arasında nasıl veri gönderip alındığına örnek bir uygulamayla bakacağız. Uygulamada ilk ekranımızda yer alan EditText nesnesine girdiğimiz bir veriyi "gönder" butonuna basarak ikinci ekrana gönderiyoruz. İkinci ekranda gönderilen veriyi karşılayıp bir TextView nesnesinde gösteriyoruz.
first_activity.xml
<?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">
<EditText
android:id="@+id/first_activity_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Gönderilecek yazıyı giriniz" />
<Button
android:id="@+id/first_activity_gonder_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gönder" />
</LinearLayout>
first_activity.xml dosyasında bir adet EditText ve Button nesneleriyle ekran tasarımını yapıyoruz.
FirstActivity.java
package com.ahmet.ekranlararasiverigonderme;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class FirstActivity extends AppCompatActivity {
private EditText gonderilecekYazi;
private Button gonderButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_activity);
initViews();
setClicks();
}
private void initViews() {
gonderilecekYazi = (EditText) findViewById(R.id.first_activity_edittext);
gonderButton = (Button) findViewById(R.id.first_activity_gonder_button);
}
private void setClicks() {
gonderButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
veriGonder();
}
});
}
private void veriGonder() {
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("veri", gonderilecekYazi.getText().toString());
startActivity(intent);
}
}
Bu dosyada ise tasarımını yaptığımız xml dosyasını yüklenecek olan java sınıfını yazıyoruz. onCreate metodu uygulamanın çalışmaya başladığı metottur. Böyle küçük bir uygulama için gereksiz olsa bile ben programı, modüler olması için metotlar halinde yazdım. initViews() metoduyla xml tarafındaki nesneleri değişkenlere atıyorum. setClicks() metodu da tıklanabilir nesnelere Click eventlerini atamak için yazılan bir metottur. Gönder butonuna tıklanınca veriGonder() metodu çalışacaktır. Bu metotla EditText nesnesine yazdığımız veri SecondActivity ekranına gönderiliyor. Intent nesnesine yazılan putExtra metodunda ilk parametre "key", ikinci parametre ise "value" olarak tanımlanır. Veri diğer ekranda bu key değeri(veri) vasıtasıyla elde edilebilir.
second_activity.xml
<?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">
<TextView
android:id="@+id/second_activity_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Verileri karşılayacağımız bu ekranda ilk ekrandan gelen veriyi alıp yazacağımız bir TextView nesnesi tanımlıyoruz.
SecondActivity.java
package com.ahmet.ekranlararasiverigonderme;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends Activity {
private TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initViews();
String gelenYazi=getIntent().getExtras().getString("veri");
setViews(gelenYazi);
}
private void initViews() {
textview= (TextView) findViewById(R.id.second_activity_textview);
}
private void setViews(String gelenYazi){
textview.setText(gelenYazi);
}
}
Gelen veriyi alıp değerini tutacağımız bir TextView nesnesi tanımladık ve aşağıdaki kod parçasıyla gelen veriyi aldık.
String gelenYazi=getIntent().getExtras().getString("veri");
gelenYazi değişkeninde tuttuğumuz değeri setViews() metodunda yazdığımız aşağıdaki kod parçasıyla ekranda gösteriyoruz.
textView.setText(gelenYazi);