Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
18Android 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ı?
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]
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]
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?
Uygulamanın sağına rehber tarzı harfler ekleme
teşekkür ederim.
Action Bar ve düşük seviyeli API ler ile uyumluluk
çok teşekkürler Halil bey.Attığınız link sayesinde hallettim