Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
163
Tıklama
0
Öne Çıkarma
Android anlayamadığım kod
D
7 yıl
Yarbay
Konu Sahibi


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?



B
7 yıl
Binbaşı

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ı >
Bu mesaja 1 cevap geldi.
D
7 yıl
Yarbay
Konu Sahibi

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



A
7 yıl
Yüzbaşı

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ı.


Bu mesaja 1 cevap geldi.
D
7 yıl
Yarbay
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.
A
7 yıl
Yüzbaşı

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...


Bu mesaja 1 cevap geldi.
D
7 yıl
Yarbay
Konu Sahibi

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ı



A
7 yıl
Yüzbaşı

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...


Bu mesaja 1 cevap geldi.
D
7 yıl
Yarbay
Konu Sahibi

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



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.