Mehmet Onat Güvenir
Mehmet Onat Güvenir
İstanbul-I (Avrupa)
01/10/2013 tarihinden beri üye
1300 GY Puanı
2K GY Sırası

Kişisel Sayfaları

İlgi Alanları

4 Rozet
5 Sertifika
16 Soru Sordu
2 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Sakarya Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (5)
Android 401 Sertifikası
Veriliş Tarihi: Ekim 2013
Android 301 Sertifikası
Veriliş Tarihi: Ekim 2013
Android 201 Sertifikası
Veriliş Tarihi: Ekim 2013
Android 101 Sertifikası
Veriliş Tarihi: Ekim 2013
101 Sertifikası
Veriliş Tarihi: Ekim 2013
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

18
Tümünü Gör

Android Studio import sample seçeneği

Merhaba herkese

http://developer.android.com/samples/index.html

Linkte Studio menüsünde File->Import sample menüsünden Android örnek projelerini indirebilirsiniz diyor ama Android Studio File altında Import sample menüsü yok.O menü nerde söyleyebilecek olan var mı?

8 yıl 11 ay önce yanıtladın

org.json.JSONObject cannot be converted to JSONArray hatası

Herkese merhaba
Android uygulamamda Mysqlden veri çekip kullanmam gerekiyordu.Volley kütüphanesi kullanarak Json parse işlemi yapıyorum fakat org.json.JSONObject cannot be converted to JSONArray hatası alıyorum.

Hatayı kodumdaki: [code]JSONObject person =etkinlikler.getJSONObject(i);[/code] satırında alıyorum.Php çıktımda sorun yok gibi gözüküyor.Veritabanı bağlantımda da sorun yok.Birkaç gündür sırf bunu çözmeye çalışıyorum stackoverdaki cevaplarla çözemedim.Yardım ederseniz çok sevinirim.

Not:Emülator olarak Genymotion kullandığım için ip adresi 10.0.3.2 yani orada bir hata yok

 

Php çıktım:

{
    "etkinlikler": [
        {
            "_id": "1",
            "ad": "toplanti1",
            "tarih": "tarih1",
            "yer": "yer1",
            "baslangicsaati": "13:00",
            "bitissaati": "18:00"
        },
        {
            "_id": "2",
            "ad": "toplanti2",
            "tarih": "tarih2",
            "yer": "yer2",
            "baslangicsaati": "14:00",
            "bitissaati": "17:00"
        }
    ]
}

 

 

Java kodum:

[code]package com.monat.bitirme.anamenu;


public class EtkinlikTakvimiActivity extends Activity {

    ListView lv;

    private String jsonResponse;

    private ProgressDialog pDialog;

    TextView tv;

    // Creating JSON Parser object
    JSONParser jParser = new JSONParser();

    ArrayList<Etkinlik> etkinlikList;

    // url to get all etkinlikler list
    private static String url_tum_etkinlikler = "http://10.0.3.2/Bitirme/get_tum_etkinlikler.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_ETKINLIKLER = "etkinlikler";
    private static final String TAG_ID = "id";
    private static final String TAG_AD = "ad";
    private static final String TAG_YER = "yer";
    private static final String TAG_TARIH = "tarih";
    private static final String TAG_BASLANGIC_SAATI = "baslangicsaati";
    private static final String TAG_BITIS_SAATI = "bitissaati";

    // etkinlikler JSONArray
    JSONArray etkinlikler = null;

    private RequestQueue mRequestQueue;

    String TAG;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_etkinlik_takvimi);

        tv=(TextView)findViewById(R.id.textView14);

        etkinlikList = new ArrayList<Etkinlik>();
        lv = (ListView) findViewById(R.id.lvEtkinlikTakvimi);

        pDialog = new ProgressDialog(this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);

        makeJsonArrayRequest();

    }

    private void makeJsonArrayRequest() {

        showpDialog();

        JsonArrayRequest req = new JsonArrayRequest(url_tum_etkinlikler,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG_ETKINLIKLER, response.toString());

                        try {
                            // Parsing json array response
                            // loop through each json object
                            etkinlikler=response;
                            jsonResponse = "";

                            for (int i = 0; i < etkinlikler.length(); i++) {

                                JSONObject person =etkinlikler.getJSONObject(i);
                                        //getJSONObject(i);

                                String _id = person.getString("_id");
                                String ad = person.getString("ad");
                                String yer = person.getString("yer");
                                String tarih = person.getString("tarih");
                                String baslangicsaati = person.getString("baslangicsaati");
                                String bitissaati = person.getString("bitissaati");


                                jsonResponse += "Name: " + _id + "\n";
                                jsonResponse += "Email: " + ad + "\n";
                                jsonResponse += "Home: " + yer + "\n";
                                jsonResponse += "Mobile: " + tarih + "\n";
                                jsonResponse += "Mobile: " + baslangicsaati + "\n";
                                jsonResponse += "Mobile: " + bitissaati + "\n";

                            }

                            tv.setText(jsonResponse);

                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(getApplicationContext(),
                                    " Volley Error + " + e.getMessage(),
                                    Toast.LENGTH_LONG).show();
                            Log.e("hata",e.getMessage());                        }

                        hidepDialog();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG_ETKINLIKLER, "Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        "Volley Error + "+error.getMessage(), Toast.LENGTH_SHORT).show();
                 //Log.e("hata",error.getMessage());

                hidepDialog();
            }
        });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(req);
    }

    private void showpDialog() {
        if (!pDialog.isShowing())
            pDialog.show();
    }

    private void hidepDialog() {
        if (pDialog.isShowing())
            pDialog.dismiss();
    }

}

[/code]

Php Kodum:

[code]<?php

// array for JSON response
$response = array();

try {
     $db = new PDO("mysql:host=localhost;dbname=bitirme", "root", "");
} catch ( PDOException $e ){
     print $e->getMessage();
}

$result = $db->query("SELECT * FROM etkinlikler", PDO::FETCH_ASSOC);

if ( $result->rowCount() ){
    
        // etkinlikler node
    $response["etkinlikler"] = array();
    
     foreach( $result as $row ){
// looping through all results

        $etkinlik = array();
        $etkinlik["_id"] = $row["_id"];
        $etkinlik["ad"] = $row["ad"];
        $etkinlik["tarih"] = $row["tarih"];
        $etkinlik["yer"] = $row["yer"];
        $etkinlik["baslangicsaati"] = $row["baslangicsaati"];
        $etkinlik["bitissaati"] = $row["bitissaati"];

        // push single etkinlik into final response array
        array_push($response["etkinlikler"], $etkinlik);
     }

     
    // echoing JSON response
    echo json_encode($response);
    

?>

[/code]

 

9 yıl önce yanıtladın

VolleyError null dönüyor

Merhaba

Uygulamamda Volley ile veri çekmeye çalışıyorum.Sorunum URL'ye bağlanmaktan ziyade veriyi çekememek.JsonArrayRequest oluştururken hata alıyorum.Nerede hata yapıyorum?

[code]EtkinlikActivity.java

package com.monat.bitirme.anamenu;


import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.monat.bitirme.MySQL.AppController;
import com.monat.bitirme.MySQL.JSONParser;
import com.monat.bitirme.R;
import com.monat.bitirme.adapter.EtkinlikTakvimiAdapter;
import com.monat.bitirme.model.Etkinlik;
import com.android.volley.AuthFailureError;
import com.android.volley.Request.Method;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;


public class EtkinlikTakvimiActivity extends Activity {

    ListView lv;

    private String jsonResponse;

    private ProgressDialog pDialog;

    TextView tv;

    ArrayList<Etkinlik> etkinlikList;


    private static String url_tum_etkinlikler = "http://10.0.3.2/Bitirme/get_tum_etkinlikler.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_ETKINLIKLER = "etkinlikler";
    private static final String TAG_ID = "id";
    private static final String TAG_AD = "ad";
    private static final String TAG_YER = "yer";
    private static final String TAG_TARIH = "tarih";
    private static final String TAG_BASLANGIC_SAATI = "baslangicsaati";
    private static final String TAG_BITIS_SAATI = "bitissaati";


    JSONArray etkinlikler = null;

    private RequestQueue mRequestQueue;

    String TAG;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_etkinlik_takvimi);

        tv=(TextView)findViewById(R.id.textView14);

        etkinlikList = new ArrayList<Etkinlik>();


        lv = (ListView) findViewById(R.id.lvEtkinlikTakvimi);

        pDialog = new ProgressDialog(this);
        pDialog.setMessage("Please wait...");
        pDialog.setCancelable(false);

        makeJsonArrayRequest();


    }

    private void makeJsonArrayRequest() {

        showpDialog();

        JsonArrayRequest req = new JsonArrayRequest(url_tum_etkinlikler,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG_ETKINLIKLER, response.toString());

                        try {
                            // Parsing json array response
                            // loop through each json object
                            jsonResponse = "";
                            for (int i = 0; i < response.length(); i++) {

                                JSONObject person = (JSONObject) response
                                        .get(i);

                                String _id = person.getString("_id");
                                String ad = person.getString("ad");
                                String yer = person.getString("yer");
                                String tarih = person.getString("tarih");
                                String baslangicsaati = person.getString("baslangicsaati");
                                String bitissaati = person.getString("bitissaati");

                                jsonResponse += "Name: " + _id + "\n";
                                jsonResponse += "Email: " + ad + "\n";
                                jsonResponse += "Home: " + yer + "\n";
                                jsonResponse += "Mobile: " + tarih + "\n";
                                jsonResponse += "Mobile: " + baslangicsaati + "\n";
                                jsonResponse += "Mobile: " + bitissaati + "\n";

                            }

                            tv.setText(jsonResponse);

                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(getApplicationContext(),
                                    "Error: " + e.getMessage(),
                                    Toast.LENGTH_LONG).show();
                        }

                        hidepDialog();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG_ETKINLIKLER, "Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        "ee"+error.getMessage(), Toast.LENGTH_SHORT).show();
                hidepDialog();
            }
        });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(req);
    }

    private void showpDialog() {
        if (!pDialog.isShowing())
            pDialog.show();
    }

    private void hidepDialog() {
        if (pDialog.isShowing())
            pDialog.dismiss();
    }


}

[/code]

AppController.java

 

[code]package com.monat.bitirme.MySQL;

        import android.app.Application;
        import android.text.TextUtils;

        import com.android.volley.Request;
        import com.android.volley.RequestQueue;
        import com.android.volley.toolbox.Volley;

public class AppController extends Application {

    public static final String TAG = AppController.class.getSimpleName();

    private RequestQueue mRequestQueue;

    private static AppController mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public static synchronized AppController getInstance() {
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        return mRequestQueue;
    }

    public <T> void addToRequestQueue(Request<T> req, String tag) {
        req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
        getRequestQueue().add(req);
    }

    public <T> void addToRequestQueue(Request<T> req) {
        req.setTag(TAG);
        getRequestQueue().add(req);
    }

    public void cancelPendingRequests(Object tag) {
        if (mRequestQueue != null) {
            mRequestQueue.cancelAll(tag);
        }
    }
}[/code]

9 yıl önce yanıtladın

Mysql veri çekerken JSON hatası

Herkese merhaba

Mysqldeki veritabanımdan veri çekip listviewde göstermek istiyorum fakat "Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject" hatası alıyorum.Anladığım kadarıyla veritabanı bağlantısında sorun yok ama ilk veriyi çekerken sorun yaşıyorum.Nette bu sorunu yaşayanlar olmuş ama çözümler bana uymadı.Neresi yanlış bu kodlarda?Şimdiden teşekkürler.

Activity dosyam:

[code]public class EtkinlikTakvimiActivity extends Activity {

    ListView lv;

    // Progress Dialog
    private ProgressDialog pDialog;

    // Creating JSON Parser object
    JSONParser jParser = new JSONParser();

    //ArrayList<HashMap<String, String>> etkinlikList;
    ArrayList<Etkinlik> etkinlikList;


    // url to get all etkinlikler list
    private static String url_tum_etkinlikler = "http://10.0.3.2/Bitirme/get_tum_etkinlikler.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_ETKINLIKLER = "etkinlikler";
    private static final String TAG_ID = "id";
    private static final String TAG_AD = "ad";
    private static final String TAG_YER = "yer";
    private static final String TAG_TARIH = "tarih";
    private static final String TAG_BASLANGIC_SAATI = "baslangicsaati";
    private static final String TAG_BITIS_SAATI = "bitissaati";

    // etkinlikler JSONArray
    JSONArray etkinlikler = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_etkinlik_takvimi);

        // Hashmap for ListView
        //etkinlikList = new ArrayList<HashMap<String, String>>();
        etkinlikList = new ArrayList<Etkinlik>();

        // Loading etkinlikler in Background Thread
        new LoadAllProducts().execute();

        // Get listview
        lv = (ListView) findViewById(R.id.lvEtkinlikTakvimi);


    }

    // Response from Edit Product Activity
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // if result code 100
        if (resultCode == 100) {
            // if result code 100 is received
            // means user edited/deleted product
            // reload this screen again
            Intent intent = getIntent();
            finish();
            startActivity(intent);
        }

    }
   
    class LoadAllProducts extends AsyncTask<String, String, String> {

       
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(EtkinlikTakvimiActivity.this);
            pDialog.setMessage("Loading etkinlikler. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        /**
         * getting All etkinlikler from url
         */
        protected String doInBackground(String... args) {
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            // getting JSON string from URL
            JSONObject json = jParser.makeHttpRequest(url_tum_etkinlikler, "GET", params);

            // Check your log cat for JSON reponse
            Log.d("All Products: ", json.toString());

            try {
                // Checking for SUCCESS TAG
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    // etkinlikler found
                    // Getting Array of Products
                    etkinlikler = json.getJSONArray(TAG_ETKINLIKLER);

                    // looping through All Products
                    for (int i = 0; i < etkinlikler.length(); i++) {
                        JSONObject c = etkinlikler.getJSONObject(i);

                        // Storing each json item in variable
                        String id = c.getString(TAG_ID);
                        String ad = c.getString(TAG_AD);
                        String tarih = c.getString(TAG_TARIH);
                        String yer = c.getString(TAG_YER);
                        String baslangicssati = c.getString(TAG_BASLANGIC_SAATI);
                        String bitissaati = c.getString(TAG_BITIS_SAATI);

                        // creating new HashMap
                        //HashMap<String, String> map = new HashMap<String, String>();
                        Etkinlik map = new Etkinlik(id, ad, tarih, yer, baslangicssati, bitissaati);

                        etkinlikList.add(map);
                    }


                } else {
                    // no etkinlikler found
                    // Launch Add New product Activity

                    Toast.makeText(getApplicationContext(), "BOŞ", Toast.LENGTH_LONG).show();

                    //Intent i = new Intent(getApplicationContext(),
                    //        NewProductActivity.class);
                    // Closing all previous activities
                    //i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    //startActivity(i);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }
        protected void onPostExecute(String file_url) {
            // dismiss the dialog after getting all etkinlikler
            pDialog.dismiss();
            // updating UI from Background Thread
            runOnUiThread(new Runnable() {
                public void run() {


                    EtkinlikTakvimiAdapter adaptorumuz = new EtkinlikTakvimiAdapter(EtkinlikTakvimiActivity.this, etkinlikList);
                    lv.setAdapter(adaptorumuz);

                }
            });

        }

    }
}

[/code]

 

php dosyam:

<?php

/*
 * Following code will list all the etkinlikler
 */

// array for JSON response
$response = array();


// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

// get all etkinlikler from etkinlikler table
$result = mysql_query("SELECT *FROM etkinlikler") or die(mysql_error());

// check for empty result
if (mysql_num_rows($result) > 0) {
    // looping through all results
    // etkinlikler node
    $response["etkinlikler"] = array();
    
    while ($row = mysql_fetch_array($result)) {
        // temp user array
        $etkinlik = array();
        $etkinlik["_id"] = $row["_id"];
        $etkinlik["ad"] = $row["ad"];
        $etkinlik["tarih"] = $row["tarih"];
        $etkinlik["yer"] = $row["yer"];
        $etkinlik["baslangicssati"] = $row["baslangicssati"];
        $etkinlik["bitissaati"] = $row["bitissaati"];

 

        // push single etkinlik into final response array
        array_push($response["etkinlikler"], $etkinlik);
    }
    // success
    $response["success"] = 1;

    // echoing JSON response
    echo json_encode($response);
    
} else {
    // no etkinlikler found
    $response["success"] = 0;
    $response["message"] = "No etkinlikler found";

    // echo no users JSON
    echo json_encode($response);
}
?>

 

Mysql yerine Sqlite kullanmam mümkün mü?

Merhaba

Şuanda uygulamamda Sqlite kullanıyorum.Üçüncü bir kişinin uygulamada verileri uzaktan güncelleyebilmesini sağlamak için Mysql&Php kullanmayı düşünüyorum.Veritabanımı bir hostta tutup uygulamaya Json çıktısı sağlayarak web üzerinden ekleme ve düzenleme yapılabilmesini sağlayacağım.

Peki sqlite tabanlı veritabanımı bu şekilde uzaktan erişip değişiklik yapabilmemin bir yolu var mı?İlla MySql veya MSSql tarzı veritabanları mı kullanmam gerek?

9 yıl 1 ay önce yanıtladın

Action Bar ve düşük seviyeli API ler ile uyumluluk

15 Ekim 2013 tarihinde cevaplandı

çok teşekkürler Halil bey.Attığınız link sayesinde hallettim