Soru & Cevap

Activity değiştiğinde Textview Value Nasıl Saklanır? ...

01.02.2015 - 03:43

Merhaba.

Bir Tesbih programı yazıyorum. Butona tıklandığında Textview değeri sayısal olarak birer birer değişiyor.

Bu değer, program kapandığında ya da activity değiştiğinde kaybolmasın istiyorum. Kullanıcı bu activity'e geri döndüğünde tesbihe kaldığı sayıdan devam etsin.

Yine bu activity'de bir tane de Reset butonu var. Tesbihi sıfırlamak için. Buna basınca da bu saklanan değerin sıfırlanmasını istiyorum.

Sanırım Shared Preferences kullanılacak. Ama kodları tam oturtamadım.

Sizce nasıl olmalı?

Şimdiden teşekkür ederim.

Kodlar aşağıdadır.

 

[code]

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

        Button btnAzalt = (Button) findViewById(R.id.btnAzalt);
        Button btnReset = (Button) findViewById(R.id.btnSifirla);

btnAzalt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                tesbih();
            }
        });

        btnResetOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                alertMessage();

            }
        });

public void alertMessage() {
        DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                case DialogInterface.BUTTON_POSITIVE:
                    // Yes button clicked
                    TextView Gosterge = (TextView) findViewById(R.id.txtGosterge);

                    Gosterge.setText("1000");
                    a = 1000;

                    break;
                case DialogInterface.BUTTON_NEGATIVE:
                    // No button clicked
                    // do nothing
                    Toast.makeText(MainActivity.this,
                            "Continue! / Devam Ediliyor!", Toast.LENGTH_LONG)
                            .show();
                    break;
                }
            }
        };

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("RESET / Tesbih Sıfırlansın mı?")
                .setPositiveButton("YES / EVET", dialogClickListener)
                .setNegativeButton("NO / HAYIR", dialogClickListener).show();
    }

    public void tesbih() {

        try {
            short sonuc = (short) (a - 1);

            TextView Gosterge = (TextView) findViewById(R.id.txtGosterge);

            Gosterge.setGravity(Gravity.CENTER_VERTICAL
                    | Gravity.CENTER_HORIZONTAL);

            Gosterge.setText(String.valueOf(sonuc));

            a = (short) (a - 1);
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        
    }

[/code]

31 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
01.02.2015 - 09:41

SharedPreferences uygulamanın yüklü olduğu ve rootlu olmayanların göremeyeceği bir alanda .xml dosyası olarak oluşur ve key->value değerler saklarlar.

Senin hem ona değer eklemeyi hem de eklediğin değeri okumayı bilmen gerekiyor.

http://www.arifceylan.com/android-shared-preferences-kullanimi-veri-kaydetme-ve-cagirma/

http://blog.canyapan.com/android/android-ile-sharedpreferences-kullanimi/

Bu kaynaklar işini görecektir.

Mirac
03.02.2015 - 02:20
Bahsettiğiniz kaynakları google'da arayıp bulmak zaten mümkün. Kodlarımı burada paylaşmamın amacı, yapılması gerekeni tam olarak alabilmekti. Yine de teşekkürler