Şimdi Ara

Android anlayamadığım kod

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
10
Cevap
0
Favori
163
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj

  • int count;
    Button btn;
    SharedPreferences preferences,ayarlar;
    RelativeLayout arkaplan;
    Boolean sesDurumu,titresimDurumu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    arkaplan = (RelativeLayout) findViewById(R.id.rl);
    btn = (Button) findViewById(R.id.button);
    preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    ayarlar = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    ayarlariYukle();
    final MediaPlayer ses=MediaPlayer.create(getApplicationContext(),R.raw.sessss);

    count=preferences.getInt("count_anahtarı",0);
    btn.setText(""+count);
    final Vibrator titresim= (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

    btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    if(sesDurumu)
    {
    ses.start();
    }
    if(titresimDurumu)
    {
    titresim.vibrate(250);
    }
    count++;
    btn.setText(""+count);
    }
    });

    }

    private void ayarlariYukle() {
    String post = ayarlar.getString("arkaplan","3");
    switch (Integer.valueOf(post))
    {
    case 0:
    arkaplan.setBackgroundColor(Color.RED);
    break;
    case 1:
    arkaplan.setBackgroundColor(Color.GREEN);
    break;
    case 2:
    arkaplan.setBackgroundColor(Color.BLUE);
    break;
    case 3:
    arkaplan.setBackgroundColor(Color.DKGRAY);
    break;
    case 4:
    arkaplan.setBackgroundColor(Color.LTGRAY);
    break;

    }

    sesDurumu = ayarlar.getBoolean("ses",false);
    titresimDurumu = ayarlar.getBoolean("titresim",false);
    ayarlar.registerOnSharedPreferenceChangeListener(MainActivity.this);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()){
    case R.id.sifirla:
    count=0;
    btn.setText(""+count);
    break;
    case R.id.ayarlar:
    Intent intent = new Intent(getApplicationContext(),Ayarlar.class);
    startActivity(intent);
    break;
    }

    return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onPause() {
    SharedPreferences.Editor editor = preferences.edit();
    editor.putInt("count_anahtarı",count);
    editor.commit();
    super.onPause();
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    ayarlariYukle();
    }
    }




    kodu tamamen attım arkadaşlar burdaki SharedPrefences türü ve ayarlar değişkenini anlamadım.ayarların benim görebildiğim ayarlar.class ile bağlantısı yok veya ayarları barındıran xml dosyalarıyla fakat program düzgün çalışıyor kaçırdığım yer neresi?







  • Sharedpreferences a kaydettiğin değerler uygulamaya özel ayrılmış bir alanda saklanır. Projenin içinden göremezsin. Ayrıca iki kere tanımalmışsın ayarlar ve preferences diye

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: bersgurs

    Sharedpreferences a kaydettiğin değerler uygulamaya özel ayrılmış bir alanda saklanır. Projenin içinden göremezsin. Ayrıca iki kere tanımalmışsın ayarlar ve preferences diye

    preferences i count değerini kaydetmek için ayarları ise uygulamanın Ayarlar kısmını değiştirmek için fakat tam kafam basmadı anlayamadım doğru düzgün
  • Sharedpreferences gecici hafızayı saklamak için kullanılır. Sende öyle yapmışsın. Örnek count değerini oncreate methodunda önce Sharedpreferences ile alıyosun sonra texte yazdırıyosun. Küçük verileri tutmak için geçici hafıza. Kodlarda tam olarak ne kafana yatmadı.
  • quote:

    Orijinalden alıntı: aimar7

    Sharedpreferences gecici hafızayı saklamak için kullanılır. Sende öyle yapmışsın. Örnek count değerini oncreate methodunda önce Sharedpreferences ile alıyosun sonra texte yazdırıyosun. Küçük verileri tutmak için geçici hafıza. Kodlarda tam olarak ne kafana yatmadı.

    hocam daha çok SharedPreferences ayarlar; olarak tanımladığım ayarlar değişkeni yatmadı.neden türü SharedPreferences ve benim ayarlar sekmesinde yaptığım değişiklik nasıl etkili oluyor bu koda göre ayarlarla bağlantı kurmamışım.(isim hep ayarlar kullandım ama hangi ayar hangi ayar umarım karışmaz )

    ya da bana sadece ayarlar değişkeninin ne yaptığını neleri değiştirdiğini anlatırsanız da iyi olur zaten merak ettiğim o dolandırmadan.

    bir de konular ilerledikçe birsürü method ve birsürü ona göre bağlantı geldi izlerken anlıyorum fakat kapatıp kendim yazarken aklıma gelmiyor bunlar ezberlenmeli mi açıp bakınca ben yapmışım gibi hissetmiyorum



    < Bu mesaj bu kişi tarafından değiştirildi Dreazz -- 7 Eylül 2017; 0:11:32 >




  • quote:

    Orijinalden alıntı: Dreazz


    quote:

    Orijinalden alıntı: aimar7

    Sharedpreferences gecici hafızayı saklamak için kullanılır. Sende öyle yapmışsın. Örnek count değerini oncreate methodunda önce Sharedpreferences ile alıyosun sonra texte yazdırıyosun. Küçük verileri tutmak için geçici hafıza. Kodlarda tam olarak ne kafana yatmadı.

    hocam daha çok SharedPreferences ayarlar; olarak tanımladığım ayarlar değişkeni yatmadı.neden türü SharedPreferences ve benim ayarlar sekmesinde yaptığım değişiklik nasıl etkili oluyor bu koda göre ayarlarla bağlantı kurmamışım.(isim hep ayarlar kullandım ama hangi ayar hangi ayar umarım karışmaz )

    ya da bana sadece ayarlar değişkeninin ne yaptığını neleri değiştirdiğini anlatırsanız da iyi olur zaten merak ettiğim o dolandırmadan.

    bir de konular ilerledikçe birsürü method ve birsürü ona göre bağlantı geldi izlerken anlıyorum fakat kapatıp kendim yazarken aklıma gelmiyor bunlar ezberlenmeli mi açıp bakınca ben yapmışım gibi hissetmiyorum

    Şimdi şöyle anlatayım. ayarlar diye değişken atamışssın. O Sharedpreferences sınıfından türemiş. Yani geçici bir hafıza tutuyorsun proje adına ayarlar diyosun. ayarlarıyükle fonksiyonunda String post değişkenine ayarlar.getString değerini almışsın. Sharedpreferences bağlantısı orda var mesela. Sanırım bir int değer veriyorsun arkaplan değişkenine. Sharedpreferences sınıfını ona göre ayarlaışsın. Sonrada o değişken kaç ise switch case ile kontrol edip arkaplanı değiştiriyosun.

    Altta

    sesDurumu = ayarlar.getBoolean("ses",false);
    titresimDurumu = ayarlar.getBoolean("titresim",false);
    ayarlar.registerOnSharedPreferenceChangeListener(MainActivity.this);
    Sesdurumunu titreşim durumunu kontrol edip dinliyosun.

    Ayar değiştirince nasıl kayıt ediyor diye aklında kaldı sanırım.Onu da

    public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()){
    case R.id.sifirla:
    count=0;
    btn.setText(""+count);
    break;
    case R.id.ayarlar:
    Intent intent = new Intent(getApplicationContext(),Ayarlar.class);
    startActivity(intent);
    break;
    }

    return super.onOptionsItemSelected(item);
    }

    Bu metotta Menu item lardan birine tıklayınca ayarlar Intentine gönderip orda değiştiriyosun. O kodlar yok ama orda ses titreşim ayarları SharedPreferences kaydediliyordur. Sende main clasında onları geri alabiliyorsun.

    Açıklayıcı oldu mu bilmiyorum :) takıldığın yer varsa yine yardımcı olabilirim...




  • quote:

    Orijinalden alıntı: aimar7


    quote:

    Orijinalden alıntı: Dreazz


    quote:

    Orijinalden alıntı: aimar7

    Sharedpreferences gecici hafızayı saklamak için kullanılır. Sende öyle yapmışsın. Örnek count değerini oncreate methodunda önce Sharedpreferences ile alıyosun sonra texte yazdırıyosun. Küçük verileri tutmak için geçici hafıza. Kodlarda tam olarak ne kafana yatmadı.

    hocam daha çok SharedPreferences ayarlar; olarak tanımladığım ayarlar değişkeni yatmadı.neden türü SharedPreferences ve benim ayarlar sekmesinde yaptığım değişiklik nasıl etkili oluyor bu koda göre ayarlarla bağlantı kurmamışım.(isim hep ayarlar kullandım ama hangi ayar hangi ayar umarım karışmaz )

    ya da bana sadece ayarlar değişkeninin ne yaptığını neleri değiştirdiğini anlatırsanız da iyi olur zaten merak ettiğim o dolandırmadan.

    bir de konular ilerledikçe birsürü method ve birsürü ona göre bağlantı geldi izlerken anlıyorum fakat kapatıp kendim yazarken aklıma gelmiyor bunlar ezberlenmeli mi açıp bakınca ben yapmışım gibi hissetmiyorum

    Şimdi şöyle anlatayım. ayarlar diye değişken atamışssın. O Sharedpreferences sınıfından türemiş. Yani geçici bir hafıza tutuyorsun proje adına ayarlar diyosun. ayarlarıyükle fonksiyonunda String post değişkenine ayarlar.getString değerini almışsın. Sharedpreferences bağlantısı orda var mesela. Sanırım bir int değer veriyorsun arkaplan değişkenine. Sharedpreferences sınıfını ona göre ayarlaışsın. Sonrada o değişken kaç ise switch case ile kontrol edip arkaplanı değiştiriyosun.

    Altta

    sesDurumu = ayarlar.getBoolean("ses",false);
    titresimDurumu = ayarlar.getBoolean("titresim",false);
    ayarlar.registerOnSharedPreferenceChangeListener(MainActivity.this);
    Sesdurumunu titreşim durumunu kontrol edip dinliyosun.

    Ayar değiştirince nasıl kayıt ediyor diye aklında kaldı sanırım.Onu da

    public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()){
    case R.id.sifirla:
    count=0;
    btn.setText(""+count);
    break;
    case R.id.ayarlar:
    Intent intent = new Intent(getApplicationContext(),Ayarlar.class);
    startActivity(intent);
    break;
    }

    return super.onOptionsItemSelected(item);
    }

    Bu metotta Menu item lardan birine tıklayınca ayarlar Intentine gönderip orda değiştiriyosun. O kodlar yok ama orda ses titreşim ayarları SharedPreferences kaydediliyordur. Sende main clasında onları geri alabiliyorsun.

    Açıklayıcı oldu mu bilmiyorum :) takıldığın yer varsa yine yardımcı olabilirim...

    anladım hocam teşekkür ederim.Bu kodların aynısını derslerini izlediğim biri yazdı.Ben de izledikten sonra %80 ini kendim yaptım fakat sonradan kalıcı olsun diye incelerken ayarlar meselesini çözememiştim. geçen hafta perşembe proje oluşturmayı bilmezken çok hızlı ilerledim sanırım fakat son konuları anlamayınca öğrenme hevesim kaçtı




  • Herşeyi birden algılamak çok zor. Bişeyler yapıp ürettikçe oturmaya başlıyacak taşlar yerine. Nacizane tavsiyem bakarakta olsa tüm kodları başkasından da alsan devamlı proje yap ufak büyük önemli değil. Yaptıkça gelişiyor insan. Derslere bakıp birilerini dinleyip mesafe kat etmek imkansız. Hata yaptığın kadar öğrenirsin yazılımı. Hata yapmak içinde devamlı proje yapmak gerek...
  • quote:

    Orijinalden alıntı: aimar7

    Herşeyi birden algılamak çok zor. Bişeyler yapıp ürettikçe oturmaya başlıyacak taşlar yerine. Nacizane tavsiyem bakarakta olsa tüm kodları başkasından da alsan devamlı proje yap ufak büyük önemli değil. Yaptıkça gelişiyor insan. Derslere bakıp birilerini dinleyip mesafe kat etmek imkansız. Hata yaptığın kadar öğrenirsin yazılımı. Hata yapmak içinde devamlı proje yapmak gerek...

    dediğiniz gibi yapıyorum zaten fakat bakınca keyfim kaçıyordu bazen ütopik düşünüp hızlıca yapmak öğrenmek istiyorum fakat bu iş öyle değilmiş

    teşekkür ederim cevaplarınız için
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.