• 21-04-2020, 13:56:08
    #1
    Merhaba arkadaşlar,

    Java üzerinde yaşadığım bir sorundan bahsetmek istiyorum.Kafa karıştırmamak adına 2 kod bölümü yolladım ve öyle isimlendiriyorum sizlere.(Üstteki 1 .kod bölümü)

    Öncelikle 1.kod bölümü uygulamada level seçmek için açılan bölümdür.Buradan level seçimi yaparak 2.kod bölümüne yönlendiriliyorsunuz.

    2. Kod bölümünde ise hangi level seçilmiş ise ona göre işlem yapmam gerektiği için 1.kod bölümünde bunu belirtmem gerekiyor.Ben burada Set-Get yolu ile denedim.

    Fakat 1.kod bölümünde Set(1) şeklinde 2.kod bölümüne veri gönderiyorum ancak bunu 2.kod blümünde fotoda gördüğünüz üzere 0 yani default olarak görüyor.

    Bence buradaki sorun StartActivity kullanmak ve diğer bölümde onCreate olması bir çakışmaya yol açmış ve yollanılan veriyi tekrarlamadan dolayı görememiş.

    Bu sorun hakkında önerilerinizi bekliyorum.Bir yolunu bulup Set-Get ile gelen veriyi görmem gerekiyor





    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_level);
    
    textView2 = findViewById(R.id.textView2);
    button1 = findViewById(R.id.button1);
    button2 = findViewById(R.id.button2);
    
    oyunaGit();
    }
    
    public void SetLevel(int level){
    
    i_Level = level;
    
    }public int GetLevel() {
    
    return i_Level;
    
    }public void oyunaGit() {
    
    button1.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View v) {
    
    SetLevel(1);
    
    Intent intent = new Intent(LevelActivity.this,MainActivity.class);
    
    startActivity(intent);
    }
    });
    @Override protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);  
      setContentView(R.layout.activity_main);  
    
     soruGoster = findViewById(R.id.soruGoster);  
     harf1 = findViewById(R.id.harf1);
       kredi = findViewById(R.id.kredi);  
      cevapButton1 = findViewById(R.id.cevapButon1);  
      silButon = findViewById(R.id.silButon);  
    
      seviyeDegisimEkran(levelActivity.GetLevel());
    }
    
    public void seviyeDegisimEkran(int value) {
    
        System.out.println("value: " + value);  
    
      if (value == 1)    {
           System.out.println("if calıstı");    
        degiskenleriAtama(value);  
          ekranaYazdir();  
         butonIslem();  
    
      } else if (value == 2)    {    
       System.out.println("else if calıstı");    
        degiskenleriAtama(value);  
          ekranaYazdir();  
          butonIslem();
    }}
  • 21-04-2020, 14:06:24
    #2
    hocam activitiler arasında veri göndermek istiyorsun sanırım?

    https://android.jlelse.eu/passing-da...i=275360cd64ca

    intent.putExtra ve intent.getExtra ile veri göndereblir ve alabilirsin
  • 21-04-2020, 14:10:57
    #3
    Merhaba

    1. kodda kullandığınız model ile ikinci kodda kullaılan model aynı yere referans etmiyor. O yüzden set ettiğiniz değeri görememeniz normal. Android intent bundle serializable , parcelable kullanarak diğer sayfaya taşımanız gerekir. Burada önerim parcelable kullanarak göndermeniz . İkinci bir yöntem olarak önermiyorum fakat static olarak tutup aynı yere referans etmesini sağlayabilirsiniz. Bu şekilde de sorun çözülecektir.

    Kolay gelsin.
  • 21-04-2020, 14:25:38
    #4
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    hocam activitiler arasında veri göndermek istiyorsun sanırım?

    https://android.jlelse.eu/passing-da...i=275360cd64ca

    intent.putExtra ve intent.getExtra ile veri göndereblir ve alabilirsin
    putExtra kullanmayı tavsiye etmiyorum hocam



    mcanerkocadag adlı üyeden alıntı: mesajı görüntüle
    Merhaba

    1. kodda kullandığınız model ile ikinci kodda kullaılan model aynı yere referans etmiyor. O yüzden set ettiğiniz değeri görememeniz normal. Android intent bundle serializable , parcelable kullanarak diğer sayfaya taşımanız gerekir. Burada önerim parcelable kullanarak göndermeniz . İkinci bir yöntem olarak önermiyorum fakat static olarak tutup aynı yere referans etmesini sağlayabilirsiniz. Bu şekilde de sorun çözülecektir.

    Kolay gelsin.
    parcelable yöntemi daha önce kullanmamıştım deneyeceğim.Static de pek güvenilir olmadığını duymuştum o yüzden yönelmedim o tarz bir çözüme teşekkürler öneri için
  • 21-04-2020, 14:58:55
    #5
    Parcelable, Javadaki Serializable yerine Android için özel geliştirilmiş bir interfacedir .Kullanımı daha zor fakat çok daha performanslıdır.
    Statik yapılar uyuşturucu gibidir başlarsanız bırakamazsınız. Mümkün mertebe önermiyorum

    Bol kodlamalar.
  • 21-04-2020, 16:15:12
    #6
    mcanerkocadag adlı üyeden alıntı: mesajı görüntüle
    Parcelable, Javadaki Serializable yerine Android için özel geliştirilmiş bir interfacedir .Kullanımı daha zor fakat çok daha performanslıdır.
    Statik yapılar uyuşturucu gibidir başlarsanız bırakamazsınız. Mümkün mertebe önermiyorum

    Bol kodlamalar.
    Bilgi ve tavsiyeniz için teşekkürler hocam