Android Programlama | Activity Arası Geçiş

deltaturk

Katılımcı Üye
26 Kas 2020
925
976
Green Team Mersin Daire Bşk.


Merhaba Türk Hack Team

Bu Konumuzda Activity’ler arası geçiş için bir örnek daha yapacağız dostlar ama bu örnek diğerlerine nazaran daha gelişmiş bir örnek olacak.

Bir ListView’imiz olacak ListView’imizin içindeki Listenin her bir elemanı için birkaç bilgi olacak biz Butona tıkladığımızda diğer sayfaya geçecek ve Tıklanan List elemanına göre bütün değerler diğer Activity’de gösterecek.




XML Kısmında Tasarım

XML Dosyasındaki constrationLayout’u LinearLayout olarak değişmeyi unutmayın!

Öncelikle bir ListView tasarlayalım

XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view">



</ListView>

</LinearLayout>






ListView’e ait bir Layout oluşturalım

res >> layout >> sağ tuş – New >> XML >> Layout XML File




Bu yolu takip edip Layout oluşturduk



layout.xml Dosyamıza Gidelim

LinearLayout kısmınnda Orieantation verelim
android:eek:rientation="vertical"
3 Tane TextView alsın


XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">

<TextView
android:layout_width="match_parent"
android:id="@+id/isim"
android:layout_height="wrap_content">



</TextView>
<TextView
android:layout_width="wrap_content"
android:id="@+id/telno"
android:layout_height="match_parent">



</TextView>
<TextView
android:layout_width="match_parent"
android:id="@+id/soyisim"
android:layout_height="wrap_content">



</TextView>

</LinearLayout>



Buton eklemeyeceğiz Layout’a tıklayınca hemen gitsni istiyorum bunun için yapacağımız işlem ise ;
Layout’a id veriyoruz
Bir de arkaplanı özelleştirmek için Renk ekledim ama bunun yüksekliğini de wrap_content olarak ayarladım


XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/analayout"



android:clickable=”true”
android:layout_margin="10dp"
android:background="@color/material_dynamic_neutral_variant60"
android:layout_height="wrap_content">






Bir tane model class’ı oluşturuyorum ( Model.java )





java >> Sağ Tuş – com.example.uygulamaadı >> New >> Java Class



Model.java Kısmına
Java:
package com.example.myapplication;

public class Model {
private String isim;
private String soyisim;
private String numara;

// Constructor Oluşturuyoruz

public Model(String isim, String soyisim, String numara)
{
this.isim = isim;
this.soyisim = soyisim;
this.numara = numara;
}
// Şimdi Get-Set Methodları Oluşturuyoruz

public String getIsim() {
return isim;
}

public void setIsim(String isim) {
this.isim = isim;
}

public String getSoyisim() {
return soyisim;
}

public void setSoyisim(String soyisim) {
this.soyisim = soyisim;
}

public String getNumara() {
return numara;
}

public void setNumara(String numara) {
this.numara = numara;
}
}






Constructor Ve Get-Set Methodlarını ekledik.



MainActivity.java Kısmına
Java:
public class MainActivity extends AppCompatActivity {

List<Model> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listeOlustur();
}
public void listeOlustur()
{
list = new ArrayList<>();
Model m1 = new Model("Taha","Tht","+1 (573) 843-1632");
Model m2 = new Model("Delta","Türk","+1 (573) 843-1632");
Model m3 = new Model("Bahar"," Tht”, “+1(573) 843-1632");
list.add(m1);
list.add(m2);
list.add(m3);
}
}



Adapter

Adapter Class’ımızı oluşturalım





java >> Sağ Tuş – com.example.uygulamaadı >> New >> Java Class – Class Adı adapter
Şimdi’de Base Adapter olarak ayarlayıp Methodlarımızı İmplement ediyoruz ve kodlarımızı yazıyoruz.

Yazmadan önce de 2.Activity class’ımızı oluşturalım.
Sağ Tuş – app >> New >> Activity >> Empyt Activity

Java:
package com.example.myapplication;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.List;

public class adapter extends BaseAdapter {

List<Model> list;
Context context;
Activity activity;

public adapter(List<Model> list, Context context,Activity activity) {
this.list = list;
this.context = context;
this.activity = activity;
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int i) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(context).inflate(R.layout.layout,parent, false);
TextView isim = (TextView) convertView.findViewById(R.id.isim);
TextView soyisim = (TextView) convertView.findViewById(R.id.soyisim);
TextView telno = (TextView) convertView.findViewById(R.id.telno);
LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.analayout);

String isimS = list.get(position).getIsim();
String soyisimS = list.get(position).getSoyisim();
String telnoS = list.get(position).getNumara();

isim.setText(isimS);
soyisim.setText(soyisimS);
telno.setText(telnoS);

linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context,MainActivity2.class);
intent.putExtra("isim",isimS);
intent.putExtra("soyisim",soyisimS);
intent.putExtra("telno",telnoS);

activity.startActivity(intent);

}
});


return convertView;
}
}




MainActivity2’ye 3 TextBox Ekleyelim

XML Kısmında 2.Activity’miz için tasarım yapıyoruz.

XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity2">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text1">
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text2">
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text3">
</TextView>


</LinearLayout>



MainActivity2 Java Kodları
Java:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

TextView textView,textView2,textView3;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tanimla();
al();
}
public void tanimla()
{
textView = findViewById(R.id.text1);
textView2 = findViewById(R.id.text2);
textView3 = findViewById(R.id.text3);
}
public void al()
{
Bundle bundle = getIntent().getExtras();
String isim = bundle.getString("isim");
String soyisim = bundle.getString("soyisim");
String telno = bundle.getString("telno");

textView.setText(isim);
textView2.setText(soyisim);
textView3.setText(telno);
}
}



Şimdi uygulamamızın kodları sorunsuz bir şekilde çalışabilir dostlar.
İntent kavramı bu kadardı, yeterince uygulama yaptığımızı düşünüyorum dostlar ama daha fazla örnek yapmamı talep ederseniz yaparım.
Sorularınızı özel mesaj şeklinde veya post şeklinde sormayı unutmayın kodlarda ufak tefek hatalar olabilir denk gelirse uyarın.




Okuduğunuz için teşekkür ediyorum Türk Hack Team Ailesi herkese iyi forumlar, esenlikler dilerim :)
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28


Merhaba Türk Hack Team

Bu Konumuzda Activity’ler arası geçiş için bir örnek daha yapacağız dostlar ama bu örnek diğerlerine nazaran daha gelişmiş bir örnek olacak.

Bir ListView’imiz olacak ListView’imizin içindeki Listenin her bir elemanı için birkaç bilgi olacak biz Butona tıkladığımızda diğer sayfaya geçecek ve Tıklanan List elemanına göre bütün değerler diğer Activity’de gösterecek.




XML Kısmında Tasarım

XML Dosyasındaki constrationLayout’u LinearLayout olarak değişmeyi unutmayın!

Öncelikle bir ListView tasarlayalım

XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view">



</ListView>

</LinearLayout>






ListView’e ait bir Layout oluşturalım

res >> layout >> sağ tuş – New >> XML >> Layout XML File




Bu yolu takip edip Layout oluşturduk



layout.xml Dosyamıza Gidelim

LinearLayout kısmınnda Orieantation verelim
android:eek:rientation="vertical"
3 Tane TextView alsın


XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">

<TextView
android:layout_width="match_parent"
android:id="@+id/isim"
android:layout_height="wrap_content">



</TextView>
<TextView
android:layout_width="wrap_content"
android:id="@+id/telno"
android:layout_height="match_parent">



</TextView>
<TextView
android:layout_width="match_parent"
android:id="@+id/soyisim"
android:layout_height="wrap_content">



</TextView>

</LinearLayout>



Buton eklemeyeceğiz Layout’a tıklayınca hemen gitsni istiyorum bunun için yapacağımız işlem ise ;
Layout’a id veriyoruz
Bir de arkaplanı özelleştirmek için Renk ekledim ama bunun yüksekliğini de wrap_content olarak ayarladım


XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:id="@+id/analayout"



android:clickable=”true”
android:layout_margin="10dp"
android:background="@color/material_dynamic_neutral_variant60"
android:layout_height="wrap_content">






Bir tane model class’ı oluşturuyorum ( Model.java )





java >> Sağ Tuş – com.example.uygulamaadı >> New >> Java Class



Model.java Kısmına
Java:
package com.example.myapplication;

public class Model {
private String isim;
private String soyisim;
private String numara;

// Constructor Oluşturuyoruz

public Model(String isim, String soyisim, String numara)
{
this.isim = isim;
this.soyisim = soyisim;
this.numara = numara;
}
// Şimdi Get-Set Methodları Oluşturuyoruz

public String getIsim() {
return isim;
}

public void setIsim(String isim) {
this.isim = isim;
}

public String getSoyisim() {
return soyisim;
}

public void setSoyisim(String soyisim) {
this.soyisim = soyisim;
}

public String getNumara() {
return numara;
}

public void setNumara(String numara) {
this.numara = numara;
}
}






Constructor Ve Get-Set Methodlarını ekledik.



MainActivity.java Kısmına
Java:
public class MainActivity extends AppCompatActivity {

List<Model> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listeOlustur();
}
public void listeOlustur()
{
list = new ArrayList<>();
Model m1 = new Model("Taha","Tht","+1 (573) 843-1632");
Model m2 = new Model("Delta","Türk","+1 (573) 843-1632");
Model m3 = new Model("Bahar"," Tht”, “+1(573) 843-1632");
list.add(m1);
list.add(m2);
list.add(m3);
}
}



Adapter

Adapter Class’ımızı oluşturalım





java >> Sağ Tuş – com.example.uygulamaadı >> New >> Java Class – Class Adı adapter
Şimdi’de Base Adapter olarak ayarlayıp Methodlarımızı İmplement ediyoruz ve kodlarımızı yazıyoruz.

Yazmadan önce de 2.Activity class’ımızı oluşturalım.
Sağ Tuş – app >> New >> Activity >> Empyt Activity

Java:
package com.example.myapplication;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.List;

public class adapter extends BaseAdapter {

List<Model> list;
Context context;
Activity activity;

public adapter(List<Model> list, Context context,Activity activity) {
this.list = list;
this.context = context;
this.activity = activity;
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int i) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(context).inflate(R.layout.layout,parent, false);
TextView isim = (TextView) convertView.findViewById(R.id.isim);
TextView soyisim = (TextView) convertView.findViewById(R.id.soyisim);
TextView telno = (TextView) convertView.findViewById(R.id.telno);
LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.analayout);

String isimS = list.get(position).getIsim();
String soyisimS = list.get(position).getSoyisim();
String telnoS = list.get(position).getNumara();

isim.setText(isimS);
soyisim.setText(soyisimS);
telno.setText(telnoS);

linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context,MainActivity2.class);
intent.putExtra("isim",isimS);
intent.putExtra("soyisim",soyisimS);
intent.putExtra("telno",telnoS);

activity.startActivity(intent);

}
});


return convertView;
}
}




MainActivity2’ye 3 TextBox Ekleyelim

XML Kısmında 2.Activity’miz için tasarım yapıyoruz.

XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity2">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text1">
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text2">
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text3">
</TextView>


</LinearLayout>



MainActivity2 Java Kodları
Java:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity2 extends AppCompatActivity {

TextView textView,textView2,textView3;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tanimla();
al();
}
public void tanimla()
{
textView = findViewById(R.id.text1);
textView2 = findViewById(R.id.text2);
textView3 = findViewById(R.id.text3);
}
public void al()
{
Bundle bundle = getIntent().getExtras();
String isim = bundle.getString("isim");
String soyisim = bundle.getString("soyisim");
String telno = bundle.getString("telno");

textView.setText(isim);
textView2.setText(soyisim);
textView3.setText(telno);
}
}



Şimdi uygulamamızın kodları sorunsuz bir şekilde çalışabilir dostlar.
İntent kavramı bu kadardı, yeterince uygulama yaptığımızı düşünüyorum dostlar ama daha fazla örnek yapmamı talep ederseniz yaparım.
Sorularınızı özel mesaj şeklinde veya post şeklinde sormayı unutmayın kodlarda ufak tefek hatalar olabilir denk gelirse uyarın.




Okuduğunuz için teşekkür ediyorum Türk Hack Team Ailesi herkese iyi forumlar, esenlikler dilerim :)
Ellerine saglik
 

deltaturk

Katılımcı Üye
26 Kas 2020
925
976
Green Team Mersin Daire Bşk.
Teşekkür Ederim Hocam.
Yine mükemmel bır konu :) elinize saglık hocam
Teşekkür Ederim Gülüm :)
Teşekkür Ederim.
Teşekkür Ediyorum.
Ellerine sağlık moderatörüm .d
Teşekkür Ederim Şafakcım :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.