Şimdi Ara

SharedPrefenceres Uygulama Çökmesi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
133
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Android Studio üzerinde SharedPreferences ile arkaplan değiştirildiği zaman hafızaya kayıt etmesini istiyorum ayarlar java sınıfı oluşturup preference activity extend ettim.
    Mainactivity de SharedPrefenceres ayarhafizasi olarak tanıttım

    ayarhafizasi= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

    activity_main e bunu girdim ve aşağıdaki metodu oluşturdum metodu kaldırınca uygulama sorunsuz açılıyor ama metod varken daha uygulama açılmadan çöküyor

    private void ayaryukle() {
    String pozisyon=ayarhafizasi.getString("renk","3");
    switch (Integer.valueOf(pozisyon)){
    case 0: anasayfa_arkaplan.setBackgroundColor(Color.RED);
    break;
    case 1: anasayfa_arkaplan.setBackgroundColor(Color.GREEN);
    break;
    }
    Kodlarda bir hata görünmüyor

    Logcat de gösterilen hata bu

    01-11 20:26:13.900 7782-7782/? E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{deneme.myapplication/deneme.myapplication.MainActivity}: java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    at android.app.ActivityThread.access$600(ActivityThread.java:141)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5041)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
    at deneme.myapplication.MainActivity.ayaryukle(MainActivity.java:54)
    at deneme.myapplication.MainActivity.onCreate(MainActivity.java:36)
    at android.app.Activity.performCreate(Activity.java:5104)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5041) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    at dalvik.system.NativeStart.main(Native Method) 



    < Bu mesaj bu kişi tarafından değiştirildi Grkwnxs -- 12 Ocak 2017; 0:2:48 >







  • MainActivity kodunu komple yazabilir misin ?

    NullPointer i tam olarak neyin null gelmesinden dolayi aliyorsun ?

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

    Orijinalden alıntı: Mephalay

    MainActivity kodunu komple yazabilir misin ?

    NullPointer i tam olarak neyin null gelmesinden dolayi aliyorsun ?

    package deneme.myapplication;

    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.graphics.Color;
    import android.preference.PreferenceManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RelativeLayout;

    public class MainActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
    int sayma;
    Button buton;
    SharedPreferences hafiza, ayarhafizasi;
    RelativeLayout anasayfa_arkaplan;
    Boolean sesdurumu, titresimdurumu;

    @Override
    protected void onPause() {
    SharedPreferences.Editor editor= hafiza.edit();
    editor.putInt("sayma_anahtarı", sayma);
    editor.commit();
    super.onPause();
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buton= (Button) findViewById(R.id.button);
    hafiza= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    ayarhafizasi= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    ayaryukle();
    anasayfa_arkaplan= (RelativeLayout) findViewById(R.id.anasayfa_arkaplan);
    sayma=hafiza.getInt("sayma_anahtarı", 0);
    buton.setText(""+sayma);
    buton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    sayma++;
    buton.setText(""+sayma);
    }
    });
    }

    private void ayaryukle() {
    String pozisyon=ayarhafizasi.getString("renk","3");
    switch (Integer.valueOf(pozisyon)){
    case 0: anasayfa_arkaplan.setBackgroundColor(Color.RED);
    break;
    case 1: anasayfa_arkaplan.setBackgroundColor(Color.GREEN);
    break;
    case 2: anasayfa_arkaplan.setBackgroundColor(Color.BLUE);
    break;
    case 3: anasayfa_arkaplan.setBackgroundColor(Color.DKGRAY);
    break;
    case 4: anasayfa_arkaplan.setBackgroundColor(Color.LTGRAY);
    break;

    }
    sesdurumu=ayarhafizasi.getBoolean("ses", false);
    titresimdurumu=ayarhafizasi.getBoolean("titresim", false);
    ayarhafizasi.registerOnSharedPreferenceChangeListener(MainActivity.this);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
    int id=item.getItemId();
    if (id==R.id.sifirla){
    sayma=0;
    buton.setText(""+sayma);
    return true;
    }
    if (id==R.id.ayarlar){
    Intent ıntent=new Intent(getApplicationContext(), ayarlar.class);
    startActivity(ıntent);
    return true;
    }

    return super.onOptionsItemSelected(item);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
    ayaryukle();
    }
    }




    Biraz karışık oldu kusura bakmayın. NullPointer hakkında hiç bilgim yok acemiyim java da aslında kodlarda hata olmaması gerek java dersindeki örneği birebir uyguluyorum.



    < Bu mesaj bu kişi tarafından değiştirildi Grkwnxs -- 12 Ocak 2017; 2:16:1 >




  • Grkwnxs G kullanıcısına yanıt
    ayar yukle fonksiyonunu anasayfa_arkaplan değişkenini tanımladıktan sonra çalıştırman gerekiyor.
  • quote:

    Orijinalden alıntı: bersgurs

    ayar yukle fonksiyonunu anasayfa_arkaplan değişkenini tanımladıktan sonra çalıştırman gerekiyor.

    Çok teşekkürler
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.