Activity arası geçişlerde verileri kaydetmek
22.01.2020 - 12:36
Activity arası geçişlerde verileri nasıl kayıt altında tutabilirim acaba ?
Örneğin
activity1 deki yaş ve ağırlık verisi var. Buton ile activity2 ye geçiş yapıp oradan tekrar activity1 e döndüğümde activity1 deki bütün verilerim (yaş - ağırlık) varsayılan hale dönmüş oluyor.
mainactivity den ---> sanalbebek ekranına geliyorum isim verisini alarak ----- bu geçişte açlık - kilo değerlerini kaydetmem gerek ---> hafiza oyunu ekranına isim verisini geçirerek geliyorum ----> sonuc ekranına geliyorum ----(buradaki kazandiMi verisini almam lazım) -->sanalBebek ekranına geçmem lazım ama bu kısımda bütün veriler sıfırlanıyor en baştaki hallerine dönüyor ve kazandiMi verisini alamıyorum
MainActivity
package com.example.gelismis_bebek;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
Button basla;
public EditText isimVer;
public String isim ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
basla = findViewById(R.id.basla);
isimVer = findViewById(R.id.isim);
if (savedInstanceState != null){
isim = savedInstanceState.getString("ism");
isim = isimVer.getText().toString();
}
else {
isim = isimVer.getText().toString();
}
basla.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isim = isimVer.getText().toString();
Intent i = new Intent(getApplicationContext(),sanalBebek.class);
i.putExtra("ism",isim);
startActivity(i);
}
});
}
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putString("ism",isim);
}
}
sanalBebek
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sanal_bebek);
besle = findViewById(R.id.besle);
gezdir = findViewById(R.id.gezdir);
uyut = findViewById(R.id.uyut);
oyunOyna = findViewById(R.id.oyunOyna);
durumAc = findViewById(R.id.progressBar);
uykuBar = findViewById(R.id.uykuBar);
eglenceBar = findViewById(R.id.eglenceBar);
kiloBar = findViewById(R.id.kiloBar);
isim = findViewById(R.id.isim);
Intent ial = getIntent();
isimal = ial.getStringExtra("ism");
if (savedInstanceState != null){
isimal = savedInstanceState.getString("isimal");
isim.setText("BEBEĞİN İSMİ : "+isimal);
}
else {
isim.setText("BEBEĞİN İSMİ : " + isimal);
}
Intent basa = getIntent();
String kazandiMi = basa.getStringExtra("kazandiMi");
eglenceBar.setProgress(veglence);
durumAc.setProgress(vaclik);
uykuBar.setProgress(vuyku);
kiloBar.setProgress(vkilo);
uyut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vuyku>= 30){
uykumVar = true;
}else{
uykumVar=false;
}
if (vaclik <= 80){
aciktim = false;
}else{
aciktim=true;
}
if (aciktim==true){
if (uykumVar==true){
Toast.makeText(getApplicationContext(),"Önce yemek yemem lazım \n Sonra uyumam gerek... ",Toast.LENGTH_LONG).show();
}else { // aç ama uykusu yok
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),YemekList[rastgel],Toast.LENGTH_LONG).show();
}
}else {
if (uykumVar==false){ // aç değil ve uykusu yok ise;
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),NonUyList[rastgel],Toast.LENGTH_LONG).show();
uzuntu+=1;
if (uzuntu == 3){
uzuntu = 1;
if (veglence<10){
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),NonUyList[rastgel],Toast.LENGTH_LONG).show();
}else{
veglence = veglence - 2;
eglenceBar.setProgress(veglence);
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),NonUyList[rastgel],Toast.LENGTH_LONG).show();
}
}
}else{
vuyku = vuyku - 10;
uykuBar.setProgress(vuyku);
Toast.makeText(getApplicationContext(),"UYKUM AZALDI...",Toast.LENGTH_LONG).show();
}
}
}
});
besle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vuyku>= 70){
uykumVar = true;
}else{
uykumVar=false;
}
if (vaclik <= 80){
aciktim = false;
}else{
aciktim=true;
}
if (vkilo > 80){
kiloAlarm = true;
}else{
kiloAlarm = false;
}
if (aciktim==false){
if (uykumVar==true){ // karnı aç değil uykusu var ise;
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),UyList[rastgel]+"\n AÇ DEĞİLİM",Toast.LENGTH_LONG).show();
}else{ //karnı aç değil - uykusu yok ise;
if (vaclik<=20){ // karnı tamamen doymuş ise; (kilo alsın; (kilo çok ise kilo dursun sadece eğlence azalsın)- eğlence azalsın)
if (kiloAlarm==false){
Toast.makeText(getApplicationContext(),"Kilo Alıyorum Galiba \n ZzZzZZzz",Toast.LENGTH_LONG).show();
if (veglence>10){
vkilo+=2;
kiloBar.setProgress(vkilo);
vuyku+=5;
uykuBar.setProgress(vuyku);
veglence-=2;
eglenceBar.setProgress(veglence);
}else{
vkilo+=2;
kiloBar.setProgress(vkilo);
vuyku+=5;
uykuBar.setProgress(vuyku);
}
}else{
Toast.makeText(getApplicationContext(),"ÇOK KİLO ALDIM ... \n SPOR LAZIM",Toast.LENGTH_LONG).show();
if (veglence>10){
veglence-=2;
eglenceBar.setProgress(veglence);
}
}
}else{ //vaclık 21 - 79 dahil arasındaysa;
vaclik = vaclik-5;
Toast.makeText(getApplicationContext(),"KARNIM DOYUYOR...",Toast.LENGTH_LONG).show();
durumAc.setProgress(vaclik);
}
}
}else{ //vaclık > 80 ise
vaclik = vaclik-10;
Toast.makeText(getApplicationContext(),"OHH SONUNDA KARNIM DOYUYOR...",Toast.LENGTH_LONG).show();
durumAc.setProgress(vaclik);
}
}
});
gezdir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vuyku>= 70){
uykumVar = true;
}else {
uykumVar = false;
}
if (vaclik <= 80){
aciktim = false;
}else {
aciktim = true;
}
if (vkilo > 80){
kiloAlarm = true;
}else {
kiloAlarm=false;
}
if (uykumVar==true && aciktim==false){
uyVar = 10;
}
if (uykumVar==false && aciktim==true){
uyVar = 1;
}
if (uykumVar==true && aciktim==true){
uyVar = 11;
}if (uykumVar==false && aciktim==false){
uyVar=0;
}
switch (uyVar){
default:
Toast.makeText(getApplicationContext(),"LÜTFEN DAHA SONRA DENEYİNİZ ... ",Toast.LENGTH_LONG).show();
case 10:
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),UyList[rastgel],Toast.LENGTH_LONG).show();
break;
case 1:
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),YemekList[rastgel],Toast.LENGTH_LONG).show();
break;
case 11:
rastgel = rnd.nextInt(4);
Toast.makeText(getApplicationContext(),UyList[rastgel]+"\n"+YemekList[rastgel],Toast.LENGTH_LONG).show();
break;
case 0:
gezdirSay++;
if (gezdirSay >= 3){
gezdirSay = 0;
if (vaclik< 100){
vaclik += 5;
durumAc.setProgress(vaclik);
}
if (vuyku<100){
vuyku += 5;
uykuBar.setProgress(vuyku);
}
if (vkilo>5){
vkilo--;
kiloBar.setProgress(vkilo);
}
Toast.makeText(getApplicationContext(),"GALİBA SPOR YAPIYORUM..",Toast.LENGTH_LONG).show();
}else{
if (vaclik< 100){
vaclik += 5;
durumAc.setProgress(vaclik);
}
if (vuyku<100){
vuyku += 5;
uykuBar.setProgress(vuyku);
}
if (veglence<100){
veglence++;
eglenceBar.setProgress(veglence);
}
Toast.makeText(getApplicationContext(),"VAYY , ETRAF ÇOK GÜZEL..",Toast.LENGTH_LONG).show();
}
break;
}
}
});
oyunOyna.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Activity(oyunOyna);
}
});
if (savedInstanceState != null){
veglence = savedInstanceState.getInt("veglence");
eglenceBar.setProgress(veglence);
}
else {
veglence = 30;
}
if (savedInstanceState != null){
vaclik = savedInstanceState.getInt("vaclik");
durumAc.setProgress(vaclik);
}
else {
vaclik = 90;
}
if (savedInstanceState != null){
vuyku = savedInstanceState.getInt("vuyku");
uykuBar.setProgress(vuyku);
}
else {
vuyku = 50;
}
if (savedInstanceState != null){
vkilo = savedInstanceState.getInt("veglence");
kiloBar.setProgress(vkilo);
}
else {
vkilo = 30;
}
}
public void Activity(View view){
Intent gecis = new Intent(getApplicationContext(),hafizaOyunu.class);
gecis.putExtra("ism",isimal);
startActivity(gecis);
}
public void Bildirim(String baslik,String metin){
NotificationManager man = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder bd = new Notification.Builder(sanalBebek.this);
bd.setContentTitle(baslik);
bd.setContentText(metin);
bd.setSmallIcon(R.drawable.onay);
bd.setAutoCancel(true);
Notification nt = bd.getNotification();
man.notify(1,nt);
}
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
outState.putInt("veglence",veglence);
outState.putInt("vuyku ",vuyku);
outState.putInt("vkilo",vkilo);
outState.putInt("vaclik",vaclik);
outState.putString("isimal",isimal);
}
}
hafizaoyunu
package com.example.gelismis_bebek;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.GridLayout;
import android.widget.TextView;
import java.util.Arrays;
import java.util.Collections;
public class hafizaOyunu extends AppCompatActivity {
int sonkart = 0;
boolean bekle = false;
int kullanimHakki = 5;
int dogruTahmin = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hafiza_oyunu);
Intent intnt = getIntent();
String isim = intnt.getStringExtra("ism");
TextView karsilama = findViewById(R.id.karsilamaTv);
karsilama.setText(isim + " Hoş geldiniz!");
GridLayout gd = findViewById(R.id.grdLyt);
int satir = 2;
int sutun = 2;
final int adet = satir * sutun;
gd.setColumnCount(satir);
gd.setRowCount(sutun);
Kart[] kartlar = new Kart[adet];
for (int i = 0; i < adet; i++) {
if (i % 2 == 0) {
kartlar[i] = new Kart(getApplicationContext(), i, i + 10);
} else {
kartlar[i] = new Kart(getApplicationContext(), i - 1, i + 10);
}
kartlar[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (kullanimHakki < 1) {
Intent bitis = new Intent(getApplicationContext(), Sonuc.class);
bitis.putExtra("kazandiMi","0");
startActivity(bitis);
return;
}
final Kart suankiKart = (Kart) v;
if (suankiKart.acikMi == true || bekle == true) {
return;
}
suankiKart.dondur();
if (sonkart > 0) {
final Kart oncekiKart = findViewById(sonkart);
if (oncekiKart.resId == suankiKart.resId) {
dogruTahmin += 2;
oncekiKart.eslesti = true;
suankiKart.eslesti = true;
if (dogruTahmin == adet) {
Intent bitis = new Intent(getApplicationContext(), Sonuc.class);
bitis.putExtra("kazandiMi", "1");
startActivity(bitis);
return;
}
} else {
bekle = true;
kullanimHakki--;
Handler h1 = new Handler();
h1.postDelayed(new Runnable() {
@Override
public void run() {
oncekiKart.dondur();
suankiKart.dondur();
bekle = false;
}
}, 2000);
}
sonkart = 0;
} else {
sonkart = suankiKart.getId();
}
}
});
}
Collections.shuffle(Arrays.asList(kartlar));
for (Kart k : kartlar) {
gd.addView(k);
}
}
}
sonuc
package com.example.gelismis_bebek;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class Sonuc extends AppCompatActivity {
String kazandiMi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sonuc);
Intent bitisal = getIntent();
kazandiMi = bitisal.getStringExtra("kazandiMi");
TextView sonucTv = findViewById(R.id.sonucText);
Button again = findViewById(R.id.again);
if (kazandiMi.equals("1")){
sonucTv.setText("TEBRİKLER KAZANDINIZ ");
ImageView onay = new ImageView(getApplicationContext());
onay.setImageResource(R.drawable.onay);
Toast onayMak = new Toast(getApplicationContext());
onayMak.setView(onay);
onayMak.setDuration(Toast.LENGTH_SHORT);
onayMak.show();
Bildirim("TEBRİKLER","10 PUAN KAZANDINIZ...");
}else{
sonucTv.setText("MALESEF TEKRAR DENE");
Toast.makeText(getApplicationContext(),"Yinede eğlenceliydi",Toast.LENGTH_LONG).show();
}
again.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent basa = new Intent(getApplicationContext(),sanalBebek.class);
basa.putExtra("kazandiMi",kazandiMi);
startActivity(basa);
}
});
}
public void Bildirim(String baslik,String metin){
NotificationManager man = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder bd = new Notification.Builder(Sonuc.this);
bd.setContentTitle(baslik);
bd.setContentText(metin);
bd.setSmallIcon(R.drawable.onay);
bd.setAutoCancel(true);
Notification nt = bd.getNotification();
man.notify(1,nt);
}
}
20
Görüntülenme
0 Beğeni