۱۳۹۴/۰۹/۱۸, ۰۷:۲۰ ب.ظ
(۱۳۹۴/۰۹/۱۸, ۰۵:۲۱ ب.ظ)mcn.nice نوشته:(۱۳۹۴/۰۹/۱۸, ۰۳:۴۶ ب.ظ)admin نوشته: سلام.
بنده خودم هر زمان که قرار است یک فایل php جدید را کدنویسی کنم، بذون درگیر شدن با کدنویسی برنامه اندروید، ابتدا صحت کدنویسی فایل php را تست می کنم (با اجرای صفحه در مرورگر اینترنت). تست صفحه یا می تواند در خود سرور اینترنتی صورت گیرد یا در کامپیوتر موجود در خانه (با نرم افزارهای شبیه ساز سرور مثل Wamp Server).
همچنین در کدنویسی PHP ، توصیه می کنم مقدار متغیرها را با تابع var_dump در خروجی مشاهده کنید (منظورم در مرحله تست صفحه است).
اکنون به سراغ کدهای صفحه شما می رویم. من یک کد نمونه و مشابه کدهای شما نوشتم و آن را تست کردم :
کد پیاچپی:<?php
$i=1;
$response = array();
while ($i<6){
$response[] = $i;
$i = $i+1;
}
var_dump($response);
print($response);
?>
خروجی، شامل یک متن خطا می باشد (خروجی در مرورگر اینترنت) :
پس مشکل از نمایش اطلاعات در خروجی است (با var_dump متوجه شدیم که آرایه به درستی تعریف شده). کدها را به صورت زیر می نویسیم :
کد پیاچپی:<?php
$i=1;
$response = array();
while ($i<6){
$response[] = $i;
$i = $i+1;
}
var_dump($response);
echo json_encode($response);
?>
نتیجه اجرای کدها (این بار بدون خطا) :
کد پیاچپی:array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
[1,2,3,4,5]
بنابراین اکنون دیگر باید دستور var_dump را حذف کنیم تا خروجی صفحه، همان خروجی مورد نظرتان باشد (همیشه به همین شکل، صفحه php را تست کرده و در مرحله آخر نیز بخش های مربوط به تست، مثل همین دستور var_dump را حذف کنید).
ببخشید من می خواهم آموزش کلید شماره 2651 را استفاده کنم اما در این قسمت کد خطا می دهد !
کد پیاچپی:setListAdapter(new MyAdapter(MainActivity.this,
R.layout.list_item,
R.id.txttitel,
json_string_1_all));
lv = getListView();
و خطای آن نبودن setListAdapter می باشد و پیشنهاد می دهد که در کلاس myadapter آن را ایجاد کنم .
مدیر گرامی من دیگه مخم یاری نمیکنه کل سایت های لاتین و ایرانی را زیر و رو کردم همش خطا میده!!
الان که باز از این برنامه خط زیر را خطا می دهد !
کد پیاچپی:
public class JSONParse extends AsyncTask<String, String, JSONObject> {
public ProgressDialog pDialog;
String my_string_1="";
@Override
public void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
public JSONObject doInBackground(String... args) {
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
return json;
}
@Override
public void onPostExecute(JSONObject json) {
ListView lv=(ListView)findViewById(R.id.listView2);
CustomListViewAdapter adapter=new CustomListViewAdapter(MainActivity.this,items);
pDialog.dismiss();
try {
cityroid = json.getJSONArray(json_titel);
// build String
json_length = cityroid.length();
json_string_1_all = new String [cityroid.length()];
json_string_2_all = new String [cityroid.length()];
json_string_3_all = new String [cityroid.length()];
for(int i = 0; i < cityroid.length(); i++){
JSONObject c = cityroid.getJSONObject(i);
// Storing JSON item in a Variable --> with UTF-8 for persian words
json_string_1_all[i] = new String(c.getString(json_pic).getBytes("ISO-8859-1"), "UTF-8");
json_string_2_all[i] = new String(c.getString(json_command).getBytes("ISO-8859-1"), "UTF-8");
json_string_3_all[i] = new String(c.getString(json_apkdl).getBytes("ISO-8859-1"), "UTF-8");
}
// show data in ListView
for(int i = 0; i < cityroid.length(); i++){
my_string_1= json_string_1_all[i];
items.add(new listviewitem()
{{
imgview=R.drawable.ic_launcher;
txttitel=my_string_1;
}});
lv.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
}
اینم خطی که خطا می گیرد !
کد پیاچپی:
cityroid = json.getJSONArray(json_titel);