Hoşgeldin Misafir

Android Studioda Mysqlden Spinner’a Veri Çekme İşlemi

SurHan

28 Kas 2017
4,186 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Arkadaşlar Merhaba Android de Spinner’a veri çekmemiz için öncelikle sunucu tarafında
yayında olan hesabımızın bulunması gereklidir.Dosya yöneticisini açarak public_html’i açalım.Filezilla yardımı ile buraya yazdığımız php dosyamızı aktaracağız.Getir.php dosyamıza aşağıdaki kodları yazalım.-

Bağlantı bilgilerinin ardından ,spinera veri çekmemiz için bir tane sorgu cümlesi yazalım.-



Kod:
<?php
		$DB_USER='kendiadınız'; 
		$DB_PASS='kendişifreniz'; 
		$DB_HOST='localhost';
		$DB_NAME='ewxdella_kullanicilar';
		$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
		if (mysqli_connect_errno()) {
		printf("Connect failed: %s\n", mysqli_connect_error());
		exit();
		}		
 
		$mysqli->query("SET NAMES 'utf8'");
		$sql="SELECT Ad FROM kullanici";
		$result=$mysqli->query($sql);
		while($e=mysqli_fetch_assoc($result)){
		$output[]=$e; 
		}	
 
		print(json_encode($output)); 
		$mysqli->close();	
 
		?>
Şimdi ise sıra veritabanı oluşturmakta.Gerçi php sayfasını oluşturmadan önce veritabanı oluşturmamız gerekliydi ama  süreç böyle ilerledi.Neyse Veritabanları bölümünde phpMyAdmin  segmesini tıklayalım .--

Ekran-Al%C4%B1nt%C4%B1s%C4%B1-1.png
-

Kullanıcılar adında bir veritabanı, kulanıcı adında da bir tablo oluşturalım.--

veri.png
--

-Tablo da Id,Ad,Soyad ve Yas alanlarını oluşturalım.Ve sonrasında veri girişinde bulunalım.---

-
Ekran-Al%C4%B1nt%C4%B1s%C4%B1-2-300x44.png
---
--Şimdi sıra android kısmına geldi.Layout bölümünden activity_main.xml  bölümüne bir tane spinner ekleyelim.Bunun dışında layout bölümüne 1 tane xml sayfası-
---
ekleyelim ben adını spin verdim.Spin.xml dosyamıza bir tane Textview ekleyelim.-
--Sıra MainActivity.java , yani kodlarımızı yazacağımız bölüme geldi.----


Kod:
public class activity_main extends AppCompatActivity {
    ArrayList<String> listItems=new ArrayList<>();
    ArrayAdapter<String> adapter;
    Spinner spinner;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spn);
        spinner=(Spinner)findViewById(R.id.spinner);
        adapter=new ArrayAdapter<String>(this,R.layout.spin,R.id.textview,listItems);
        spinner.setAdapter(adapter);
  }
 public void onStart(){
        super.onStart();
        BackTask bt=new BackTask();
        bt.execute();
    }
    private class BackTask extends AsyncTask<Void,Void,Void> {
        ArrayList<String> list;
        protected void onPreExecute(){
            super.onPreExecute();
            list=new ArrayList<>();
        }
        protected Void doInBackground(Void...params){
            InputStream is=null;
            String result="";
            try{
                HttpClient httpclient=new DefaultHttpClient();
                HttpPost httppost= new HttpPost("http://www.sitenizinadı/Getir.php");
                HttpResponse response=httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
            }catch(IOException e){
                e.printStackTrace();
            } try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));
                String line = null;
                while ((line = reader.readLine()) != null) {
                    result+=line;
                }
                is.close();
            }catch(Exception e){
                e.printStackTrace();
            }
            try{
               JSONArray jArray =new JSONArray(result);
                for(int i=0;i<jArray.length();i++){
                    JSONObject jsonObject=jArray.getJSONObject(i);
                    list.add(jsonObject.getString("Ad"));
                }
            }
            catch(JSONException e){
                e.printStackTrace();
            }
            return null;}
 protected void onPostExecute(Void result){
            listItems.addAll(list);
            adapter.notifyDataSetChanged();
        }
    }
 
}

---Kodlarımızı tamamladıktan sonra işlemimiz tamamlanıyor,sonuç ise aşağıdaki gibi :).-

İyi çalışmalar dilerim.-
----
---
spiiii-300x190.png
-----