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
androidrientation="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;
}
}
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
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