Bu dersimizde Androidde sqLite veritabanina önceden eklenmis verileri listeleme islemi yapacagiz. Yani bildigimiz select islemi. Ve bu çektigimiz verileri ListView de gösterecegiz.
Ayni zamanda listview de listelenmis olan herhangi bir satir tiklandiginda ne gibi bir islem yapilacagini da anlatacagiz. Yani listview in setOnItemClickListener (new OnItemClickListener()) metodunda baska sinifta ayrintili bir sekilde görmek gibi bir islem uygulayacagiz.
Yine ilk olarak asagidaki gibi bir ekran tasarlayacagiz. Ve bu ekranda Anasayfa butonu ile ekleme yapacagimiz ekrana ulasacagiz.
Tasarlayacagimiz ekranin xml kodlari da asagidaki gibidir.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="0.99" android:background="@drawable/ysl" android:cacheColorHint="#ff330044" android:divider="#ffffff" android:textColor="#ffffff" > </ListView> <Button android:id="@+id/anaekran" android:layout_width="match_parent" android:layout_height="58dp" android:text="@string/ana_ekran" /> </LinearLayout>
Asagida .java sinifinin kodlari ve açiklamasi verilmistir.
Veritabani sifre;//veritabanimizin adi public static int idSnf;// private String[] SELECT = { "id", "kullanici_adi", "sifre","kullanilan_yer","hesap_no"};//select islemi için hangi alanlarin çekilecegini belirleyelim protected void onCreate(Bundle savedInstanceState) {//onCreate metodu super.onCreate(savedInstanceState); setContentView(R.layout.lstvw);//View sinifinin adi Button anaekran = (Button) findViewById(R.id.anaekran);//buton nesnesi anaekran.setOnClickListener(new View.OnClickListener() {//butonun Click metodu @Override public void onClick(View v) { startActivity(new Intent("android.intent.action.ACILIS"));//butona tiklandiginda açilacak .java sinifinin adi } }); sifre = new Veritabani(this);// veritabani sinifinin nesnesi...(5. derste anlatilacak olan sinif) SQLiteDatabase db = sifre.getReadableDatabase();//Sqlite Nesnesi Cursor cursor = db.query("sifre", SELECT, null, null, null, null, null);//select islemi final ListView listemiz=(ListView) findViewById(R.id.listView1);//listview nesnesi startManagingCursor(cursor); final ArrayList<String> txt = new ArrayList<String>();//array list final ArrayList<Integer> idtxt = new ArrayList<Integer>();//array list int i = 1; while(cursor.moveToNext()){ //döngü ile veritabanindan çekilen kolonlarin degiskenlere aktarilmasi String k_adi = cursor.getString((cursor.getColumnIndex("kullanici_adi"))); long id = cursor.getLong(cursor.getColumnIndex("id")); String sifre = cursor.getString((cursor.getColumnIndex("sifre"))); String k_yeri = cursor.getString((cursor.getColumnIndex("kullanilan_yer"))); int h_No = cursor.getInt((cursor.getColumnIndex("hesap_no"))); idtxt.add((int)id);//array liste bunlarin aktarilmasi txt.add(i+"-) "+k_adi+ " , "+ sifre+ " , "+k_yeri);//arrayliste aktarim yapilmasi i++; } ArrayAdapter<String> veriAdaptoru=new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, android.R.id.text1, txt); listemiz.setAdapter(veriAdaptoru);// listview e gerekli bilgilerin aktarilmasi listemiz.setOnItemClickListener(new OnItemClickListener() {//listview in click metodu @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { idSnf = idtxt.get(arg2 );//seçilenin ID degerini integer degiskenine atariz. Toast.makeText(getApplicationContext(), txt.get(arg2) , Toast.LENGTH_LONG).show(); startActivity(new Intent("android.intent.action.LIST_MAIN"));//listede seçilenin ardindan açilacak sinif } }); }