آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خواندن اطلاعات گرفته شده از جیسون

SaeiD-as  11 سال پیش  11 سال پیش
0 0

سلام دوستان

من یه سری اطلاعات رو از جیسون میگیرم و بوسیله Log برام نشونشون میده و تک تک جیسون آبجکت ها رو میگم توی Log بهم نشون بده، همه رو نشون میده بجز یکی! دو سه ساعته وقتمو گرفته درست نمیشه که نمیشه!!!

 try {                
G.users.clear(); JSONArray users = new JSONArray(result); for (int i = 0; i < users.length(); i++) { Log.i("LOG", "length :" + users.length()); Log.i("LOG", "JSONObject:" + users.getJSONObject(i)); JSONObject object = users.getJSONObject(i); Log.i("LOG", "Object:" + object.getLong("user_id")); Log.i("LOG", "Object:" + object.getString("user_name")); Log.i("LOG", "Object:" + object.getString("user_phone")); Log.i("LOG", "Object:" + object.getString("user_pass")); Log.i("LOG", "Object:" + object.getString("user_Address"));
 
+3 0
تو فایل php تون رشته ای به نام user_Address وجود نداره (11 سال پیش)
0 0
مرسی درست شد:) user_address باید مینوشتم بجا user_Address (11 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
SaeiD-as  11 سال پیش
0 0

خب دوستان من اطلاعات رو از جیسون گرفتم و تک تکشونو ذخیرشون کردم، بعد از اون یه دیالوگ باز میکنم که اطلاعات گرفته شده رو نشون میده، متد setText هر جوری صداش میکنم برنامه کرش می کنه! مشکلش چیه؟

  try {
                users.clear();
                JSONArray userj = new JSONArray(result);
                JSONObject object = userj.getJSONObject(0);
                StructUsers user = new StructUsers();
                user.id = object.getLong("user_id");
                user.name = object.getString("user_name");
                user.phone = object.getString("user_phone");
                user.pass = object.getString("user_pass");
                user.address = object.getString("user_address");
                //Log.i("LOG", " " + user.id);
                //Log.i("LOG", " " + user.name);

                users.add(user);
                
                final Dialog dialog = new Dialog(G.currentActivity);
                dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                TextView txtNameRecieved = (TextView) dialog.findViewById(R.id.txtNameRecieved);
                TextView txtPhoneRecieved = (TextView) dialog.findViewById(R.id.txtPhoneRecieved);
                TextView txtAddressRecieved = (TextView) dialog.findViewById(R.id.txtAddressRecieved);

                txtNameRecieved.setText( user.name);              <---از اینجا به بعد ایراد میگیره و کرش میکنه
                txtPhoneRecieved.setText(user.phone);
                txtAddressRecieved.setText(user.address);
پاسخ به سوال 
sun.of.god.7  11 سال پیش
0 0

سلام
اون قسمت هایی که میخوای تو تکست ویو ذخیره کنی رو  "" بهش اضافه کن به این شکل

  txtNameRecieved.setText( "" + user.name);

txtPhoneRecieved.setText("" +user.phone); txtAddressRecieved.setText("" + user.address);
0 0
انجام دادم فرقی نکرد (11 سال پیش)
پاسخ به سوال 
sun.of.god.7  11 سال پیش
+2 0

فکر کنم مشکلتون رو فهمیدم

شما فایل xml رو به دیالوگ معرفی نکردین

 finalDialog dialog =newDialog(G.currentActivity);
setContentView(R.layout.dialoglayout);// این خط رو اضافه کنید dialog
.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
0 0
فکر نکنم، چون وقتی اون سه تا خط که کرش میکنه رو غیر فعال میکنم دیالوگ به راحتی باز میشه اما متن منو نشون نمیده (11 سال پیش)
+1 0
دلیلش اینه که چیزی برای نمایش وجود نداره شما اون سه تا تکست ویو رو توی کدوم لیوت گذاشتین ؟ همون لیوت رو تو setContentView قرار بده اگه ویدیو استاد رو هم ببینین منظورم رو میفهمی (11 سال پیش)
+1 0
داداش دمت گرم، این خط کد رو داشتم اما بعد از ست کردن TextView معرفیش کرده بودم، آوردمش بالاتر حل شد:) (11 سال پیش)
0 0
حالا اگه بخوام این اطلاعات که گرفتمو و داخل user.name و ... ذخیره کردمو توی کلاسهای دیگه بخونمش راه حلش چیه؟ (11 سال پیش)
0 0
دقیق سوالتو نفهمیدم اگه میشه کامل تر توضیح بده (11 سال پیش)
0 0
من این اطلاعاتو از جیسون گرفتم، داخل user.id ، user.name و ... ذخیره کردم که داخل همین کلاس معرفیشون کرده بودم، حالا من میخوام user.name رو توی یه کلاس دیگه مجدد فراخوانی کنم و setText رو انجام بدم (11 سال پیش)
0 0
میتونم اینارو بصورت فیلد استاتیک معرفی کنم و توی کلاسای دیگه بخونم اما راه حلش زیاد قشنگ نیست! (11 سال پیش)
0 0
از طریق users هم میتونین این کار رو بکنین (11 سال پیش)
0 0
یعنی چطوری ازش استفاده کنم؟ (11 سال پیش)
0 0
اگه میشه واضح تر توضیح بدین چطور میخواین ازش استفاده کنین مثلا روی هر ایتم لیست ویو تون کلیک شه و اطلاعات اون ایتم تو صفحه ی بعد نشون بده ؟ (11 سال پیش)
0 0
یه تکست ویو دارم، که توی یه اکتیویتی دیگه تعریفش کردم، میخوام این متنی که از طریق جیسون گرفتم و داخل user.id و ... ذخیرش کردمو اونجا ست کنم. کد زیر که جواب نمیده: ;(txtname.setText(user.name داخل پرانتزو چی باید بنویسم؟ (11 سال پیش)
+1 0
,وقتی شما اون پیج مورد نظرت باز نشده به چه دردت میخوره که تو اون تکست ویو ذخیره شه ؟ اگه با کلیک روی هر ایتم لیست ویو میخوای این کار رو کنی تو adapternote قسمت fill با اینتنت پوزیشن ایتم رو به صفحه ی مورد نظر ارسال کن و توی پیج جدید اون پوزیشن رو به mainactivity.users بده تا محتواش رو بهت بده و تو تکست ویوت نمایش بده (11 سال پیش)
0 0
نه اصن لیست ویو ندارم، دقیقا منم میخوام وقتی پیج مورد نظرم باز شد اونو ست کنم اما با چه دستوری؟ (11 سال پیش)
پاسخ به سوال 
moin  11 سال پیش
0 0

من دقیقا متوجه منظورت نشدم اما تو یه کلاس عمومی مثل G  میتونی یه آرایه پویا ArrayList با نووع موردنظرت که میتونه و باید یک Struct باشه بریزی و همه جا در دسترست هست چون کلاس G  کلاس عمومیه ، البته یادت نره کلاس G  رو در manifest اعلان کنی


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .