Turkcell | Geleceği Yazanlar

Soru & Cevap

Arkadaşlar Çok acil

20.06.2014 - 15:52

Androidde bir PHP dosyasından Json Parser ile verileri çekiyorum program emulator de düzgün çalısırken projeyi imzalayıp telefonda çalıstırmak istediğimde Json parser butonuna tıkladıgımda program durduruldu hatası alıyorum.... aynı projede birde image gallery butonu var projeyi açıp önce image gallery butonuna basıp geri gelip tekrar json parser butonuna bastığımda veriler geliyor lütfen yardım cok acil log ları aşagıda paylaşıyorum...

4824 Görüntülenme

10 Cevap

Burak
20.06.2014 - 23:13

teşekkür ederim kardeş yordum seni

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Onur
23.12.2016 - 16:43
Selam Burak, yemek listesini .xml veya .php de nasıl yazdın örnek verebilir misin? Yardımını rica ediyorum. Teşekkür ederim.
Burak
23.12.2016 - 21:00
Tam olarak ne yapmak istediğini sölersen yardımcı olurum
Onur
23.12.2016 - 23:21
Benimde şirketime ait uygulama projem var ve içerisinde yemekhaneye ait de sayfa koymak istiyorum ama ne kadar uğraştıysam yemek listesini çekemedim. Bana bu konuda yardımcı olabilir misin nasıl yazabiliriz.
Burak
23.12.2016 - 23:31
Json kullanabilirsin bununla ilgili internette çok fazla döküman var bi dene takıldığın yerde yardımcı olırum
Onur
23.12.2016 - 23:46
zaten kullandım da tam istediğim gibi olmadı. sonra buradaki yazıya denk geldim. İşin yetişmesi için az zaman kaldığı için senin burada yaptığın uygulama gibi yapsam durumu kurtarmak için yeterli olacaktır. Bu yüzden nasıl yaptığını merak ettim.
Burak
24.12.2016 - 00:05
Ben burdaki koddan farklı bi kod kullanmıstım yazalıda cok oldu tam hatırlamıyorum önce jsonla bütün veriyi almayı dene daha sonra yukarıda yaptığım gibi tarih tanımla json daki date parametresi ile tanımladığın tarihi birbirine eşitle. Kodlar yanımda değil olsa sana verirdim dediğim gibi uzun zaman oldu yazalı biraz uğraş yapamazsan tekrar görüşelim sana kodları veririm
Onur
24.12.2016 - 10:49
Aslında kodları paylaşabilirsen çok iyi olur çünkü vakit dar ve ancak tamamlarım. mailden göndermen mümkün olur mu > onurgsmtest@gmail.com
Burak
24.12.2016 - 11:17
dediğim gibi kodlar yanımda değil bulabilirsem gönderrim ancak kendin yaparsan senin içşn daha iyi olur selametle
Ahmet Burak Demirkoparan
20.06.2014 - 22:31

bak güzel kardeşim aynı hatayı bende aldım ve uygulamayı telefonumda test ettim zaten.

MainActivity Kodları

[code]

package com.ahmetburak.jsonyemek;

import android.os.StrictMode;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;


public class MainActivity extends ActionBarActivity {

    private final String JSON_URL = "http://takvim.amasya.edu.tr/burak.php";
    ArrayList<YemekMenu> menuList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

        StrictMode.setThreadPolicy(policy);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        menuList = new ArrayList<YemekMenu>();

        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost(JSON_URL);

        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try{
            JSONArray jArray = new JSONArray(str);
            for (int i = 0; i < jArray.length(); i++)
            {
                try {
                    JSONObject jsonObject = jArray.getJSONObject(i);
                    String kalori = jsonObject.getString("kalori");
                    String corba = jsonObject.getString("corba");
                    String anayemek = jsonObject.getString("anayemek");
                    String date = jsonObject.getString("date");
                    String meyve = jsonObject.getString("meyve");
                    String yemek = jsonObject.getString("yemek");
                    menuList.add(new YemekMenu(kalori, corba, anayemek, date, meyve, yemek));
                }catch(JSONException e){

                }
            }
        } catch ( JSONException e) {
            e.printStackTrace();
        }

        Log.d("MainActivity",String.valueOf(menuList.size()));

    }
}

[/code]

 

Buda YemekMenu

[code]

package com.ahmetburak.jsonyemek;

/**
 * Created by Ahmet Burak on 20.6.2014.
 */
public class YemekMenu {
    private String kalori,corba,anayemek,date,meyve,yemek;

    public YemekMenu(String kalori, String corba, String anayemek, String date, String meyve, String yemek) {
        this.kalori = kalori;
        this.corba = corba;
        this.anayemek = anayemek;
        this.date = date;
        this.meyve = meyve;
        this.yemek = yemek;
    }

    public String getKalori() {
        return kalori;
    }

    public void setKalori(String kalori) {
        this.kalori = kalori;
    }

    public String getCorba() {
        return corba;
    }

    public void setCorba(String corba) {
        this.corba = corba;
    }

    public String getAnayemek() {
        return anayemek;
    }

    public void setAnayemek(String anayemek) {
        this.anayemek = anayemek;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getMeyve() {
        return meyve;
    }

    public void setMeyve(String meyve) {
        this.meyve = meyve;
    }

    public String getYemek() {
        return yemek;
    }

    public void setYemek(String yemek) {
        this.yemek = yemek;
    }
}

[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
20.06.2014 - 20:10

malesef hocam eclipse de çalışıyor zaten sorun telefona atınca oluyor

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ahmet Burak Demirkoparan
20.06.2014 - 20:02

içeri bi try daha atacaksın ve catch yazacaksın suan pc'imde kod yazacak yer yok ezbere yazdım calısır inş.

[code]

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
 import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class Yemeklistesi extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yemekmenu);
         
         
         
         
        TextView date = (TextView) findViewById(R.id.xxxx);
        TextView corba = (TextView) findViewById(R.id.xxxx);
        TextView anayemek = (TextView) findViewById(R.id.xxx);
        TextView yemek = (TextView) findViewById(R.id.xxxx);
        TextView meyve = (TextView) findViewById(R.id.xxxx);
        TextView kalori = (TextView) findViewById(R.id.xxxx);
 
         
        JSONObject json = null;
        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost("url");
         
        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");
             
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        String currentDateandTime = sdf.format(new Date());
         
        
        
        
          Date Curdate =null;
         
          Date Yemekdate =null;
      
        String dateInString = "07/06/2013";
     
        try {
     
               Curdate = sdf.parse(currentDateandTime);
     
        } catch (ParseException e) {
            e.printStackTrace();
        }
     
        
     
        
        
        try{
            JSONArray jArray = new JSONArray(str);
           
          
            
            
            
            
            
            for (int i = 0; i < jArray.length(); i++)
            {
                try{
                 json = jArray.getJSONObject(i);
                
            
           
                  
            try {
                         
                           Yemekdate = sdf.parse( json.getString("date"));
                          
               
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  
                
                 if(Curdate.getDate()==Yemekdate.getDate()    )
                 {
                    
                      date.setText(json.getString("date"));
                      corba.setText(json.getString("xxxx"));
                      anayemek.setText(json.getString("xxxx"));
                      yemek.setText(json.getString("xxx"));
                      meyve.setText(json.getString("xxx"));
                      kalori.setText(json.getString("xxx"));
                
                 }
                }
                
                
            }catch(JSONException e){
            
            }
             
           } catch ( JSONException e) {
            e.printStackTrace();               
        }
         
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
20.06.2014 - 19:36

hocam hata verdi bende tam kodu gonderirmisin

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ahmet Burak Demirkoparan
20.06.2014 - 17:14

Sorunu buldum arada 1 tane null değer fırlıyor oda obje oluşturamayıp patlıyor.try - catch ile hallettim meseleyi.

[code]

 [{"kalori":"190 Kalori","corba":"Sehriye Corba","anayemek":"fasulye","date":"18.06.2014","meyve":"salata","yemek":"pilav"},{"kalori":"190 Kalori","corba":"Sehriye Corba","anayemek":"Kuru Fasulye","date":"19.06.2014","meyve":"Salata","yemek":"Pirinc Pilavi"},{"kalori":"1074 Kalori","corba":"EZOGELIN CORBA","anayemek":"ISLIM  KEBAP","date":"20.06.2014","meyve":"AYRAN","yemek":"PIRINC PILAVI"},{"kalori":"980 Kalori","corba":"SEHRIYE CORBA","anayemek":"IZMIR KOFTE","date":"23.06.2014","meyve":"MEYVE","yemek":"PIRINC PILAVI"},{"kalori":"1025 Kalori","corba":"MERCIMEK CORBA","anayemek":"TAVUK SINITZEL","date":"24.06.2014","meyve":"SALATA","yemek":"PEYNIRLI MAKARNA"},{"kalori":"1059 Kalori","corba":"DOMATES CORBA","anayemek":"PATLICAN KEBAP","date":"25.06.2014","meyve":"AYRAN","yemek":"PIRINC PILAVI"},{"kalori":"1120 Kalori","corba":"KREMALI MANTAR CORBA","anayemek":"ETLI TAZE FASULYE","date":"26.06.2014","meyve":"TATLI","yemek":"BULGUR PILAVI"},{"kalori":"1114 Kalori","corba":"DUGUN CORBA","anayemek":"FIRIN PATATES","date":"27.06.2014","meyve":"YOGURT","yemek":"BARBUNYA P�LAK�"},{"kalori":"980 Kalori","corba":"DUGUN CORBA","anayemek":"ETLI TURLU","date":"30.06.2014","meyve":"MEYVE","yemek":"BULGUR PILAVI"},null]

[/code]

dikkat edersen en son bi null var.

Çözüm şöyle

[code]

try{
            JSONArray jArray = new JSONArray(str);
            for (int i = 0; i < jArray.length(); i++)
            {
                try {
                    JSONObject jsonObject = jArray.getJSONObject(i);
                    String kalori = jsonObject.getString("kalori");
                    String corba = jsonObject.getString("corba");
                    String anayemek = jsonObject.getString("anayemek");
                    String date = jsonObject.getString("date");
                    String meyve = jsonObject.getString("meyve");
                    String yemek = jsonObject.getString("yemek");
                    menuList.add(new YemekMenu(kalori, corba, anayemek, date, meyve, yemek));
                }catch(JSONException e){

                }
            }
        } catch ( JSONException e) {
            e.printStackTrace();
        }

[/code]

ben test etmek için YemekMenu diye bi sınıf yazıp ondan liste tutup ona yükledim verileri sorunsuz 9 tane veri yüklendi.try-catch i bu sekilde ikili yap hem array hemde object için.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
20.06.2014 - 19:36
hocam hata verdi bende tam kodu gonderirmisin
Ahmet Burak Demirkoparan
20.06.2014 - 16:20

urlyide verebilir misin kodu bi kendi pc'imde deneyeceğim

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
24.02.2016 - 10:42
url
Burak
20.06.2014 - 16:04

php dosyasındaki veriyi bugünün tarihine göre çekiyorum hocam

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
20.06.2014 - 16:03

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
 import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class Yemeklistesi extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yemekmenu);
         
         
         
         
        TextView date = (TextView) findViewById(R.id.xxxx);
        TextView corba = (TextView) findViewById(R.id.xxxx);
        TextView anayemek = (TextView) findViewById(R.id.xxx);
        TextView yemek = (TextView) findViewById(R.id.xxxx);
        TextView meyve = (TextView) findViewById(R.id.xxxx);
        TextView kalori = (TextView) findViewById(R.id.xxxx);
 
         
        JSONObject json = null;
        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost("url");
         
        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");
             
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        String currentDateandTime = sdf.format(new Date());
         
        
        
        
          Date Curdate =null;
         
          Date Yemekdate =null;
      
        String dateInString = "07/06/2013";
     
        try {
     
               Curdate = sdf.parse(currentDateandTime);
     
        } catch (ParseException e) {
            e.printStackTrace();
        }
     
        
     
        
        
        try{
            JSONArray jArray = new JSONArray(str);
           
          
            
            
            
            
            
            for (int i = 0; i < jArray.length(); i++)
            {
                 json = jArray.getJSONObject(i);
                
            
           
                  
            try {
                         
                           Yemekdate = sdf.parse( json.getString("date"));
                          
               
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  
                
                 if(Curdate.getDate()==Yemekdate.getDate()    )
                 {
                    
                      date.setText(json.getString("date"));
                      corba.setText(json.getString("xxxx"));
                      anayemek.setText(json.getString("xxxx"));
                      yemek.setText(json.getString("xxx"));
                      meyve.setText(json.getString("xxx"));
                      kalori.setText(json.getString("xxx"));
                
                 }
                
                
            }
             
             
          
             
             
        } catch ( JSONException e) {
            e.printStackTrace();               
        }
         
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

 

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ahmet Burak Demirkoparan
20.06.2014 - 16:00

jsonda sorun var gibi istersen json parse ederken googlenin gson kütüphanesini kullanmanı öneririm.

kaynak kodlarını paylaşır mısın?

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Burak
20.06.2014 - 16:14
hocam kodları aşağıda paylaştım

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