Soru & Cevap

Veri guncelleme ...

10.08.2016 - 10:06

Merhaba,

Ben veritabanı işlemlerini pekiştirme adına ufak bir çalışma yapıyorum.  tablelayoutta seçtiğim satıra basılı tutup bir ocntex menu aracılığıyla düzenle değip güncelleme ekranına geçiyorum. Bu ekrana geçerken seçmiş olduğum satırın bilgilerini edittextler üzerine bilgileri getiriyorum. Ancak yaptığım bir yanlış var bir türlü bulamadım. Hangi satırı seçersem seçeyim daima ilk satırdaki bilgiyi edittextlere getiriyor. Bu konuda yardımlarınızı rica ederim. Teşekkürler.

Kodlarım aşağıdaki gibidir;

 

Veritabanındaki kodlarım;

 public void Guncelle(long id, String ad, String mail, String adres) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(AD, ad);
        cv.put(MAIL, mail);
        cv.put(ADRES, adres);

        db.update(TABLE_NAME, cv, ID + "=" + id, null);
        db.close();

    }

Satır seçtiğim sınıfdaki kodlarım;
 case R.id.duzenle:

                    Veritabani data = new Veritabani(getApplicationContext());

                    List<Ogrenci> ogrenciListe = new ArrayList<Ogrenci>();
                    ogrenciListe=data.TumKayitlar();

                    for (final Ogrenci ogrenci:ogrenciListe) {
                        TableRow satirlar = new TableRow(getApplicationContext());
                        satirlar.setGravity(Gravity.CENTER);
                        satirlar.setOrientation(TableRow.HORIZONTAL);

                        TextView tv_adim = new TextView(getApplicationContext());
                        tv_adim.setPadding(2, 2, 100, 2);
                        tv_adim.setTextColor(Color.WHITE);
                        tv_adim.setText(ogrenci.getAdSoyad());


                        TextView tv_mailim = new TextView(getApplicationContext());
                        tv_mailim.setPadding(2, 2, 100, 2);
                        tv_mailim.setTextColor(Color.WHITE);
                        tv_mailim.setText(ogrenci.getMail());


                        TextView tv_adresim = new TextView(getApplicationContext());
                        tv_adresim.setPadding(2, 2, 2, 2);
                        tv_adresim.setTextColor(Color.WHITE);
                        tv_adresim.setText(ogrenci.getAdres());


                        satirlar.addView(tv_adim);
                        satirlar.addView(tv_mailim);
                        satirlar.addView(tv_adresim);
                        tablos.addView(satirlar);
                        CharSequence charSequence= ogrenci.getAdSoyad();
                        CharSequence charSequence1 = ogrenci.getMail();
                        CharSequence charSequence2 = ogrenci.getAdres();
                        CharSequence charSequenceid = String.valueOf(ogrenci.getId());
                        Intent intentim = new Intent(getApplicationContext(),Guncelle.class);
                        intentim.putExtra("anahtar",charSequence);
                        intentim.putExtra("anahtar2",charSequence1);
                        intentim.putExtra("anahtar3",charSequence2);
                        intentim.putExtra("anahtar4",charSequenceid);
                        mode.finish();
                        startActivity(intentim);


                        return true;
                    }

Güncelleme sınıfındaki kodlarım;

package com.example.bygenius.veritabanicalisma;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Guncelle extends AppCompatActivity {

    EditText etad,etmail,etadres;
    private long id;
    Button btnGuncelle;


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

        etad = (EditText) findViewById(R.id.etadi);
        etmail = (EditText) findViewById(R.id.etmailim);
        etadres = (EditText) findViewById(R.id.etadresim);
        btnGuncelle = (Button) findViewById(R.id.btGuncelle);


       Bundle gelenveri = getIntent().getExtras();
        CharSequence gelenYazi = gelenveri.getCharSequence("anahtar");
        CharSequence gelenYazi2 = gelenveri.getCharSequence("anahtar2");
        CharSequence gelenYazi3 = gelenveri.getCharSequence("anahtar3");
        etad.setText(gelenYazi);
        etmail.setText(gelenYazi2);
        etadres.setText(gelenYazi3);


        btnGuncelle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String adiz = etad.getText().toString();
                String mailiz = etmail.getText().toString();
                String adresiz = etadres.getText().toString();
                Bundle gelenverici = getIntent().getExtras();
                CharSequence gelenid = gelenverici.getCharSequence("anahtar4");
                id = Long.valueOf(gelenid.toString());

                Veritabani data = new Veritabani(getApplicationContext());
                data.Guncelle(id,adiz,mailiz,adresiz);
                Toast.makeText(Guncelle.this, "Veri Güncellendi", Toast.LENGTH_SHORT).show();





            }
        });

    }
}

 

3 Görüntülenme

1 Cevap

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

Profile picture for user osman.asar
osman.asar
14.12.2019 - 11:44

Çok uzun bunu detaylıca incelememiz lazım