Mehmet Ethem SULAN :: Android :: Passing data to another Activity Android ListView Example

Bu uygulamada Android ile yeni bir activity başlatmak(start new activity) ve başlatılan activitye data gönderip(pass data) listeledim.
Note: yeni bir activity başlatıldığında mutlaka AndroidManifest.xml içinde activitiy olduğunu belirtmemiz lazım. Aşağıdaki resimde Add buttonu tıklayıp activitymizi ekliyoruz. IDE de aşağıdaki gibi bir kod ekliyor. Kendiniz de yazabilirsiniz.

<activity android:name="FilmListele"></activity>

add activity


MyStartActivity.java

package com.data.transfer;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MyStartActivity extends Activity {
	private Button create_activity_button;
	private ArrayList<String> filmListesi = new ArrayList<String>();

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		filmListesi.add("The Bourne Identity (2002)");
		filmListesi.add("The Bourne Ultimatum (2007)");
		filmListesi.add("So Close (2002)");
		filmListesi.add("Takedown (2000)");
		// access main.xml button component
		create_activity_button = (Button) findViewById(R.id.button1);
		// if click button, call activity
		create_activity_button.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {
				try {
					// inten: activity, service gibi componentleri calistirir.
					// Bilesenler arasindaki iletisimi saglar. Bu ornekte diger
					// activitye gecis saglamis.
					Intent intent = new Intent(getApplicationContext(),
							FilmListele.class);
					// Bundle JavaBean ler gibi verileri cachelemek icin
					// kullanilir. Bu ornekte listemdeki recordlari
					// FilmListesi.java
					// activitysine gonderiyorum.
					Bundle bundle = new Bundle();
					bundle.putStringArrayList("films_key", filmListesi);
					// intentimize eklyoruz.
					intent.putExtras(bundle);
					// FilmListele activitysini baslatiyor.
					startActivity(intent);
				} catch (Exception e) {
					Log.d("attention", "Activity baslatma basarisiz");
				}

			}
		});

	}
}

Yukarıdaki default activitymiz için
main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Start New Activity">
    </Button>
</LinearLayout>

FilmListele.java

package com.data.transfer;

import java.lang.reflect.Array;
import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;

//Activitylr Activty classini ektend etmek zorundadir.
public class FilmListele extends Activity {
	private ListView list_view;
	private ArrayList<String> gelenVeriListesi;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		// bu activitye icin liste.xml layoutunu create ettim.
		setContentView(R.layout.liste);
		// ListView bilsesnini kullanmak icin erismem lazim.
		list_view = (ListView) findViewById(R.id.listView1);
		// MyStartActivity.java activitysinden gelen verileri aliyor.
		Bundle extra = getIntent().getExtras();
		// diger activity de keyimiz "films_key" e erisiyoruz.
		gelenVeriListesi = extra.getStringArrayList("films_key");
		// liste.xml de verileri listelemek icin bir adapter set ediyoruz.
		list_view
				.setAdapter(new ArrayAdapter<String>(this,
						android.R.layout.browser_link_context_header,
						gelenVeriListesi));
		// DDMS e mesaj yaziyorum.
		Log.d("calisti", "oleeey");

	}

}

Bu activity için açşağıdaki liste.xml layoutu tnımlanmış.
liste.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">
    <ListView android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

Çalıştırdığınız Start New Activity buttonu tıklayınca aşağıdaki gibi bir ekran görüntüsü olur.
output
Download VeriAktarma.tar.gz

Comments

There are 2 comments for this post.

  1. Mehmet Ethem SULAN :: Android :: Passing data from one Activity to Service Android ListActivity Click Sample on Temmuz 26, 2011 8:38 pm

    [...] Start Activity from Service and Start Service from Activity ve Passing data to another Activity Android ListView Example samplelerine bakarsanız iyi olur. Service içinden DDMS e atılan loglar. [...]

  2. Burak on Eylül 20, 2011 12:29 pm

    Öncelikle çabanız ve çalışmalarınız için teşekkür ederim,
    fakat başlık neden ingilizce acaba?Türkçe içerik oluşturuyorsunuz sonuçta başlık ta Türkçe olsa daha iyi olurdu.

    Saygılar..

Write a Comment

Let me know what you think?