Android Question Loading JSON file from a website & Parsing JSON data of Multiple Arrays

Shahid Saeed

Active Member
Licensed User
Longtime User
I went through all the Tutorials about usage of JSON file, and currently found only few methods, Local JSON file and remote JSON file.

My Question is the method for remote JSON files which provides a way through connecting to MySQL server and fetch the data and parse into JSON. But what if someone doesn't have access over to MySQL and the only source he have is the JSON file link e.g (http://www.somewebsite.com/JSON/JSON.php). What will be the method to include that JSON file, or if there is a way to read data from remote file and store into Assets folder as local JSON file.

My Second Question is about Parsing specific JSON Data from Multiple Arrays

for example :

B4X:
{
   "news_sections": [
      {
         "section_title": "الأخبار",
         "news": [
            {
               "news_date": "الأربعاء ، ١٩ مارس  ٢٠١٤",
               "news_title": "الوارية تنتزع سيف صاحب السمو رئيس الدولة",
               "news_summary": "أهدى معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، إنجاز «هجن الرئاسة» وفوزها بسيفي الحول والزمول، وخنجر الزمول المحليات، إلى صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة حفظه الله،",
               "news": "<p align=\"right\">أهدى معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، إنجاز «هجن الرئاسة» وفوزها بسيفي الحول والزمول، وخنجر الزمول المحليات، إلى صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة حفظه الله، مؤكداً أن فوز هجن الرئاسة بـ «ناموس القائد»، يمثل أعلى وأروع تكريم لمسيرة إنجازاتها المتلاحقة، التي توجتها أمس بتتويج مستحق واستثنائي، مشيراً إلى أن ما شهده المهرجان الختامي بالوثبة، يمثل شاهداً حياً على دعم وعطاء القيادة للرياضات التراثية، وفي مقدمتها سباقات الهجن التي تعيش عصرها الذهبي. <\/p><p align=\"right\">كما أهدى معاليه إنجاز «هجن الرئاسة» إلى الفريق أول سمو الشيخ محمد بن زايد آل نهيان ولي عهد أبوظبي نائب القائد الأعلى للقوات المسلحة، مشيداً بدعم سموه المتواصل للرياضة والرياضيين، وللرياضات التراثية بصفة خاصة، وفي مقدمتها سباقات الهجن، التي يحفظ منتسبوها لسموه أياديه البيضاء على هذه الرياضة، والتي تمثلت في عدة سباقات تطوف إمارات الدولة باسم سموه، إضافة إلى الدعم الدائم والسخي للسباقات في كل الميادين، ما جعل الإمارات وجهة للملاك والمضمرين من دول الخليج كافة. <\/p><p align=\"right\">وثمن معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، دعم وعطاء سمو الشيخ منصور بن زايد آل نهيان، نائب رئيس مجلس الوزراء وزير شؤون الرئاسة، مؤكداً أن عطاء سموه بلا حدود، وأن ما شهدته سباقات الهجن ومختلف الرياضات التراثية من تطور، كان نتاجاً لأفكار سموه الوثابة التي لا تحدها حدود، وتنطلق من حب عميق للوطن، ومن ربط رائع بين الماضي بموروثه العريق والحاضر بمعطيات التطور، تطلعاً إلى مستقبل حافل بإذن الله لدولتنا الناهضة. <br><\/p>",
               "image": "http://www.prcamels.ae/images/news/npic18711720.jpg"
            },
            {
               "news_date": "الأحد ، ١٦ مارس  ٢٠١٤",
               "news_title": "الخفيفة لـ «هجن الرئاسة» تتصدر منافسات الشيوخ للثنايا",
               "news_summary": "شهد معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة حفظه الله، رئيس اتحاد سباقات الهجن، منافسات اليوم السادس للمهرجان الختامي السنوي لسباقات الهجن بمنطقة الوثبة بالعاصمة أبوظبي",
               "news": "<div style=\"text-align: right;\">شهد معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة حفظه الله، رئيس اتحاد سباقات الهجن، منافسات اليوم السادس للمهرجان الختامي السنوي لسباقات الهجن بمنطقة الوثبة بالعاصمة أبوظبي، والتي خصصت لسن (الثنايا) الطفح ولمسافة 6 كلم، كما شهد المنافسات، جمهور غفير من محبي رياضة سباقات الهجن من أبناء الدولة وإخوانهم من دول مجلس التعاون الخليجي.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">وتصدرت (الخفيفة) لهجن الرئاسة مع المضمر مبارك أحمد مطر الخييلي الشوط الأول والمخصص للبكار المحليات وأحرزت المركز الأول والناموس بعد أن قطعت مسافة الشوط في توقيت (9:15:2 دقيقة)، وجاءت في المركز الثاني (احتلال) لهجن الرئاسة والمضمر عيسى أحمد مطر الخييلي بتوقيت وقدره(9:17:2)، وحلت ثالثة (الوجبة) لهجن الشحانية والمضمر سالم فاران المري بتوقيت (9:20:00).<\/div><div style=\"text-align: right;\"><br><\/div>",
               "image": "http://www.prcamels.ae/images/news/npic27449365.jpg"
            },
            {
               "news_date": "السبت ، ١٥ مارس  ٢٠١٤",
               "news_title": "هجن الرئاسة.. «خط أحمر»",
               "news_summary": "شهد سمو الشيخ حمدان بن محمد بن راشد آل مكتوم ولي عهد دبي، منافسات اليوم الخامس للمهرجان الختامي السنوي لسباقات الهجن في منطقة الوثبة بالعاصمة أبوظبي",
               "news": "<div style=\"text-align: right;\">شهد سمو الشيخ حمدان بن محمد بن راشد آل مكتوم ولي عهد دبي، منافسات اليوم الخامس للمهرجان الختامي السنوي لسباقات الهجن في منطقة الوثبة بالعاصمة أبوظبي، كما شهد المنافسات معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة حفظه الله، رئيس اتحاد سباقات الهجن، والشيخ راشد بن حمدان بن محمد آل نهيان، والشيخ خليفة بن سيف بن محمد آل نهيان، والشيخ المر بن مكتوم آل مكتوم، وجمع غفير من محبي رياضة سباقات الهجن من أبناء الدولة وإخوانهم أبناء دول مجلس التعاون الخليجي.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">وكانت هجن الرئاسة قد حلقت كعادتها بناموس الإبداع وأثبتت أنها «خط أحمر» على صعيد المنافسة، بعد أن اكتسحت معظم المراكز، وغردت وحدها خارج السرب، في مكانتها التي لا تدانيها فيها غيرها، وليس أدل على ذلك من حصولها على «هاتريك» في الأشواط الرئيسية لمنافسات «الإيذاع»، التي أقيمت لمسافة 6 كلم في الميدان الجنوبي للفترة المسائية، والتي شهدت تصدر (كيف) لهجن الرئاسة والمضمر راشد محمد بالسم المنصوري منافسات الشوط الأول «أبكار مفتوح» وفازت بالمركز الأول بعد أن تصدرت المراحل الأخيرة وحققت أفضل توقيت لفئة الإيذاع بعد أن قطعت المسافة بتوقيت وقدره (8:48:5)، وجاءت في المركز الثاني (كوره) لهجن الرئاسة والمضمر راشد محمد بالسم المنصوري وقطعت المسافة بتوقيت وقدره (8:49:8)، وفي المركز الثالث (هدوء) لهجن العاصفة والمضمر حمد راشد غدير الكتبي بتوقيت وقدره (8:56:1).<\/div><div style=\"text-align: right;\"><br><\/div>",
               "image": "http://www.prcamels.ae/images/news/npic77497797.jpg"
            }
         ]
      },
      {
         "section_title": "الأخبار العامة",
         "news": [
            {
               "news_date": "الخميس ، ٣٠ يناير  ٢٠١٤",
               "news_title": "سلطان بن حمدان: دعم القيادة الرشيدة وراء تفوق هجن الإمارات",
               "news_summary": "هنأ معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة رئيس اتحاد سباقات الهجن، صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة حفظه الله، بنجاح العملية الجراحية داعيا الله عز وجل أن يمن على سموه بالصحة والعافية، كما هنأ معاليه صاحب السمو رئيس الدولة بإنجاز هجن الرئاسة بفوز «سمحة» بالسيف الذهبي للحول و«معزز» بالخنجر الذهبي للزمول المحليات.",
               "news": "<div style=\"text-align: right;\">هنأ معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة رئيس اتحاد سباقات الهجن، صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة - حفظه الله - بنجاح العملية الجراحية داعيا الله عز وجل أن يمن على سموه بالصحة والعافية، كما هنأ معاليه صاحب السمو رئيس الدولة بإنجاز هجن الرئاسة بفوز «سمحة» بالسيف الذهبي للحول و«معزز» بالخنجر الذهبي للزمول المحليات في مهرجان أمير قطر للهجن العربية الأصيلة، وهنأ معاليه الفريق أول سمو الشيخ محمد بن زايد آل نهيان ولي عهد أبوظبي نائب القائد الأعلى للقوات المسلحة بالإنجاز المميز، كما هنأ معاليه سمو الشيخ منصور بن زايد آل نهيان نائب رئيس مجلس الوزراء وزير شؤون الرئاسة بتفوق هجن الرئاسة في ميدان الشحانية، وتوجه معاليه بالتهنئة إلى شعب الإمارات بهذا الإنجاز الكبير.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">&nbsp;وقال معاليه: «هذه الإنجازات هي نتاج للدعم غير المحدود الذي تجده رياضات الآباء والأجداد عامة وسباقات الهجن على وجه الخصوص، من سموه التي تهدف إلى تعزيز قيم الماضي في نفوس الأبناء والأجيال المقبلة، مشيراً معاليه إلى أن هذا الدعم السخي كفل لهجن الرئاسة تحقيق الانتصارات والتتويج بأرفع الألقاب في السباقات التي تشارك فيها داخل وخارج الدولة. وأكد معاليه أن الفريق أول سمو الشيخ محمد بن زايد آل نهيان ولي عهد أبوظبي نائب القائد الأعلى للقوات المسلحة يقدم الدعم والاهتمام الكبيرين لسباقات الهجن مما وضعها على طريق التوهج المستمر وفتح الطريق لحصد الإنجازات والتوشح بالألقاب وانعكس ذلك على هجن الرئاسة والتي تخوض التحديات بحثاً عن القمة في كافة المحافل الداخلية والخارجية.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">وأوضح معاليه أن دعم ومتابعة سمو الشيخ منصور بن زايد آل نهيان نائب رئيس مجلس الوزراء وزير شؤون الرئاسة لسباقات الهجن وتوفير كافة المتطلبات ظل يصب في اتجاه تطويرها والوصول بها إلى أعلى المراتب، وما إنجاز هجن الرئاسة في مهرجان أمير قطر إلا محصلة ونتاج طبيعي للدعم الكبير الذي يقدمه سموه لرياضة سباقات الهجن.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">وأوضح معاليه «سباقات الهجن في الإمارات محظوظة بالاهتمام الكبير والدعم الذي تجده من القيادة الرشيدة التي تحرص على غرس هذا الإرث التاريخي في نفوس الشباب لتواصل رياضة الآباء والأجداد مسيرتها مع الأجيال والتي تحمل العديد من المعاني العميقة في نفوس الجميع».<\/div><div style=\"text-align: right;\">وأشار معاليه إلى أن هجن الرئاسة تخوض كل التحديات للتتويج بالناموس في السباقات التي تقام محلياً أو في المنافسات الخارجية لذا تأتي مشاركاتها مليئة بالتحدي بحثاً عن التتويج، وهنا نجد أن تتويجها بسيف أمير قطر في الشحانية وبستة رموز أخرى هو امتداد لإنجازات متتالية ظلت تحققها على الدوام، ونأمل أن تتواصل مسيرة نجاحاتها في كل السباقات المقبلة.<\/div><div style=\"text-align: right;\"><br><\/div>",
               "image": "http://www.prcamels.ae/images/news/npic89046723.jpg"
            },
            {
               "news_date": "الأحد ، ٠٨ ديسمبر  ٢٠١٣",
               "news_title": "سمو الشيخ منصور بن زايد آل نهيان يحضر مأدبة غداء أقامها معالي الشيخ سلطان بن حمدان آل نهيان",
               "news_summary": "حضر سمو الشيخ منصور بن زايد آل نهيان نائب رئيس مجلس الوزراء وزير شؤون الرئاسة، مأدبة غداء أقامها لسموه معالي الشيخ سلطان بن حمدان بن محمد آل نهيان، مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن.",
               "news": "<div style=\"text-align: right;\">حضر سمو الشيخ منصور بن زايد آل نهيان نائب رئيس مجلس الوزراء وزير شؤون الرئاسة، مأدبة غداء أقامها لسموه معالي الشيخ سلطان بن حمدان بن محمد آل نهيان، مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن. حضر المأدبة الشيخ سعيد بن حمدان بن محمد آل نهيان، والشيخ خليفة بن سلطان بن حمدان آل نهيان، وعدد من الملاك من أبناء الدولة ودول مجلس التعاون الخليجي، وقدم الحضور التهنئة لسموه بمناسبة فوز إسطبلات الوثبة بكأس اليوم الوطني للقدرة، بعد إحراز الفارس علي يوسف الحمادي المركز الأول على ظهر الفرس (آرمور).<\/div>",
               "image": "http://www.prcamels.ae/images/news/npic92061215.jpg"
            }
         ]
      },
      {
         "section_title": "السباقات",
         "news": [
            {
               "news_date": "الأربعاء ، ١٩ مارس  ٢٠١٤",
               "news_title": "الوارية تنتزع سيف صاحب السمو رئيس الدولة",
               "news_summary": "أهدى معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، إنجاز «هجن الرئاسة» وفوزها بسيفي الحول والزمول، وخنجر الزمول المحليات، إلى صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة حفظه الله،",
               "news": "<p align=\"right\">أهدى معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، إنجاز «هجن الرئاسة» وفوزها بسيفي الحول والزمول، وخنجر الزمول المحليات، إلى صاحب السمو الشيخ خليفة بن زايد آل نهيان رئيس الدولة حفظه الله، مؤكداً أن فوز هجن الرئاسة بـ «ناموس القائد»، يمثل أعلى وأروع تكريم لمسيرة إنجازاتها المتلاحقة، التي توجتها أمس بتتويج مستحق واستثنائي، مشيراً إلى أن ما شهده المهرجان الختامي بالوثبة، يمثل شاهداً حياً على دعم وعطاء القيادة للرياضات التراثية، وفي مقدمتها سباقات الهجن التي تعيش عصرها الذهبي. <\/p><p align=\"right\">كما أهدى معاليه إنجاز «هجن الرئاسة» إلى الفريق أول سمو الشيخ محمد بن زايد آل نهيان ولي عهد أبوظبي نائب القائد الأعلى للقوات المسلحة، مشيداً بدعم سموه المتواصل للرياضة والرياضيين، وللرياضات التراثية بصفة خاصة، وفي مقدمتها سباقات الهجن، التي يحفظ منتسبوها لسموه أياديه البيضاء على هذه الرياضة، والتي تمثلت في عدة سباقات تطوف إمارات الدولة باسم سموه، إضافة إلى الدعم الدائم والسخي للسباقات في كل الميادين، ما جعل الإمارات وجهة للملاك والمضمرين من دول الخليج كافة. <\/p><p align=\"right\">وثمن معالي الشيخ سلطان بن حمدان آل نهيان مستشار صاحب السمو رئيس الدولة، رئيس اتحاد سباقات الهجن، دعم وعطاء سمو الشيخ منصور بن زايد آل نهيان، نائب رئيس مجلس الوزراء وزير شؤون الرئاسة، مؤكداً أن عطاء سموه بلا حدود، وأن ما شهدته سباقات الهجن ومختلف الرياضات التراثية من تطور، كان نتاجاً لأفكار سموه الوثابة التي لا تحدها حدود، وتنطلق من حب عميق للوطن، ومن ربط رائع بين الماضي بموروثه العريق والحاضر بمعطيات التطور، تطلعاً إلى مستقبل حافل بإذن الله لدولتنا الناهضة. <br><\/p>",
               "image": "http://www.prcamels.ae/images/news/npic18711720.jpg"
            },
            {
               "news_date": "الأحد ، ١٦ مارس  ٢٠١٤",
               "news_title": "الخفيفة لـ «هجن الرئاسة» تتصدر منافسات الشيوخ للثنايا",
               "news_summary": "شهد معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة حفظه الله، رئيس اتحاد سباقات الهجن، منافسات اليوم السادس للمهرجان الختامي السنوي لسباقات الهجن بمنطقة الوثبة بالعاصمة أبوظبي",
               "news": "<div style=\"text-align: right;\">شهد معالي الشيخ سلطان بن حمدان بن محمد آل نهيان مستشار صاحب السمو رئيس الدولة حفظه الله، رئيس اتحاد سباقات الهجن، منافسات اليوم السادس للمهرجان الختامي السنوي لسباقات الهجن بمنطقة الوثبة بالعاصمة أبوظبي، والتي خصصت لسن (الثنايا) الطفح ولمسافة 6 كلم، كما شهد المنافسات، جمهور غفير من محبي رياضة سباقات الهجن من أبناء الدولة وإخوانهم من دول مجلس التعاون الخليجي.<\/div><div style=\"text-align: right;\"><br><\/div><div style=\"text-align: right;\">وتصدرت (الخفيفة) لهجن الرئاسة مع المضمر مبارك أحمد مطر الخييلي الشوط الأول والمخصص للبكار المحليات وأحرزت المركز الأول والناموس بعد أن قطعت مسافة الشوط في توقيت (9:15:2 دقيقة)، وجاءت في المركز الثاني (احتلال) لهجن الرئاسة والمضمر عيسى أحمد مطر الخييلي بتوقيت وقدره(9:17:2)، وحلت ثالثة (الوجبة) لهجن الشحانية والمضمر سالم فاران المري بتوقيت (9:20:00).<\/div><div style=\"text-align: right;\"><br><\/div>",
               "image": "http://www.prcamels.ae/images/news/npic27449365.jpg"
            }
         ]
      }
   ]
}

I want to load data of the first array section from this JSON code and display all arrays within that array plus there is a link to image file which I want to display as well. what will be the best approach to display that data along with the picture, please note that the data will be displayed within a scroll view or advice the best possible way to show the data other than scroll view because there are other elements on that page and only half of the acclivity size is available for this data.

The following data will be displayed from the JSON array:

News_Date
News_Title
News_Summary

I want to cover 20% of the Area with Picture and 80% with the Text in A Row and for each item the rows will be repeated.
 

Shahid Saeed

Active Member
Licensed User
Longtime User
I've just got back in from picking my niece up from school, what have I missed :)

WOW!!!
You have a lot to do I 10 days considering that you've never used B4A before. You've taken on a huge undertaking considering that PHP is your speciality and not Android apps.

I would have demanded more time.

Do you have more screen shots of what the actual feed looks like in the Apple version of the app?

Actually I had to say yes to save my JOB before my company was outsourcing APPS work, but now the new finance manager is trying to save some bucks and I don't have too much PHP work to do as well. I have been told to start developing android APPS or they will find new person who can do both PHP and Android. Its really hard to find the new JOB as soon as possible and I have been working with them for 6 years.

Do you have an iPhone or iPad? Download the App: https://itunes.apple.com/ae/app/presidential-camels/id847285568?mt=8

Or if you open the link in your browser you can see more screen shots.
 
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
Here you go screenshot is attached
 

Attachments

  • 123.png
    123.png
    27.5 KB · Views: 253
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
So far so good @Shahid Saeed, I'm just looking at your code.
Anyway, if you are using V1.10 or V1.11 you can define the row gravity as well. Please look at my post in the following link. I've also added a screen so that users can see exactly what I'm talking about.

http://www.b4x.com/android/forum/th...-tables-of-any-size.19254/page-14#post-181463
Can you guide me in one thing if I want to add news_date & news_title & news_summary in one row how make put them in separate line in html we use /n or <BR>.
 
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
CRLF worked, I just figured one issue, Its repeating First Row Value on All Rows? When i made row background transparent other rows text is there placed on each other. What could be the reason?

B4X:
Sub JobDone(Job As HttpJob)
    If Job.Success = True Then
        NewsJson = Job.GetString
       
    Dim parser As JSONParser
        parser.Initialize(NewsJson)
       
    Dim root As Map = parser.NextObject
    Dim news_sections As List = root.Get("news_sections")
   
    Dim bob As Int = 0
    For Each colnews_sections As Map In news_sections
   
        LogColor(bob, Colors.red)
       
        'Dim section_title As String = colnews_sections.Get("section_title")
        Dim news As List = colnews_sections.Get("news")
       
        For Each colnews As Map In news
        Dim news_summary As String = colnews.Get("news_summary")
        Dim news_date As String = colnews.Get("news_date")
        'Dim news1 As String = colnews.Get("news")
        Dim news_image As String = colnews.Get("image")
        Dim news_title As String = colnews.Get("news_title")
        Log(news_title)
       
        Table1.Initialize(Me, "Table1", 2)
        Table1.AddToActivity(Activity, 10dip, 30%y, 100%x - 20dip, 56%y)
        Table1.TableColor = Colors.Transparent
        Table1.SetHeader(Array As String("", ""))
        For i =0 To colnews.Size -1
        Table1.AddRow(Array As String(news_date & CRLF & news_title & CRLF & news_summary , news_image))
        'Table1.AddRow(Array As String("", ""))
        'Table1.AddRow(Array As String(news_title, ""))
        'Table1.AddRow(Array As String(news_summary, ""))
        Next
        Table1.SetColumnsWidths(Array As Int(100%x - 100dip, 100dip))
           
        Next
    Exit 'ADD EXIT HERE
    Next           
       
        ProgressDialogHide
    Else
        Log("Error: " & Job.ErrorMessage)
    End If       
       
End Sub
 
Upvote 0

Peter Simpson

Expert
Licensed User
Longtime User
Here you go, replace your current JobDone with this one, your list will now scroll...

B4X:
Sub JobDone(Job As HttpJob)
    If Job.Success = True Then
        NewsJson = Job.GetString
       
    Dim parser As JSONParser
        parser.Initialize(NewsJson)
       
    Dim root As Map = parser.NextObject
    Dim news_sections As List = root.Get("news_sections")
   
    Table1.Initialize(Me, "Table1", 2)
    Table1.AddToActivity(Activity, 0, 170dip, Activity.Width, Activity.height - (2 * 170dip))
    Table1.SetHeader(Array As String("", ""))
    Table1.RowHeight = 125 
    Table1.SetColumnsWidths(Array As Int(100%x - 100dip, 100dip))
   
    For Each colnews_sections As Map In news_sections
        'Dim section_title As String = colnews_sections.Get("section_title")
        Dim news As List = colnews_sections.Get("news")
       
        For Each colnews As Map In news
           Dim news_date As String = colnews.Get("news_date")
            Dim news_title As String = colnews.Get("news_title")
            Dim news_summary As String = colnews.Get("news_summary")
           Dim news_image As String = colnews.Get("image")           
           
           'Dim news1 As String = colnews.Get("news")
           Log(news_title)
         
           For i = 0 To colnews.Size -1
               Table1.AddRow(Array As String(news_date & CRLF & news_title & CRLF & news_summary , news_image))
               'Table1.AddRow(Array As String("", ""))
               'Table1.AddRow(Array As String(news_title, ""))
               'Table1.AddRow(Array As String(news_summary, ""))
           Next
        Next
        Exit 'ADD EXIT HERE
    Next
        ProgressDialogHide
    Else
        Log("Error: " & Job.ErrorMessage)
    End If      
End Sub

I also recommend that you use the link that I gave you to add left, centre or right justification(gravity), well that's if you need it.
 
Last edited:
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Export as zip and upload project is better than posting an useuseable code...

You can try this (dont know whether it works; i cannot test it without the rest of the code)

B4X:
Sub JobDone(Job As HttpJob)
  If Job.Success = True Then
    NewsJson = Job.GetString
    Dim parser As JSONParser
    parser.Initialize(NewsJson)
     
    Dim root As Map = parser.NextObject
    Dim news_sections As List = root.Get("news_sections")
 
    Dim bob As Int = 0
    For Each colnews_sections As Map In news_sections
          LogColor(bob, Colors.red)
      'Dim section_title As String = colnews_sections.Get("section_title")
      Dim news As List = colnews_sections.Get("news")
     
        Table1.Initialize(Me, "Table1", 2)
        Table1.AddToActivity(Activity, 10dip, 30%y, 100%x - 20dip, 56%y)
        Table1.TableColor = Colors.Transparent
        Table1.SetHeader(Array As String("", ""))
      Table1.SetColumnsWidths(Array As Int(100%x - 100dip, 100dip))
      For Each colnews As Map In news
        Dim news_summary As String = colnews.Get("news_summary")
        Dim news_date As String = colnews.Get("news_date")
        'Dim news1 As String = colnews.Get("news")
        Dim news_image As String = colnews.Get("image")
        Dim news_title As String = colnews.Get("news_title")
        Log(news_title)
        Table1.AddRow(Array As String(news_date & CRLF & news_title & CRLF & news_summary , news_image))
      Next
         
        Exit 'ADD EXIT HERE
    Next         
    ProgressDialogHide
  Else
        Log("Error: " & Job.ErrorMessage)
  End If     
End Sub
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Here you go, replace your current JobDone with this one, your list will now scroll...

B4X:
For i = 0 To colnews.Size -1
colnews is a map with title, date, text and so on. Say it has 5 fields.
With this code you´ll add <no of fields>x<no of news> rows in the table. Exact <no of news> newsitems. but each are <no of fields> times in the table.

Haven´t tried it but this seems not really locically for me ;)

Maybe i´m missing something? ;) (i´ve posted my version of it at the same time like you, Peter)
 
Last edited:
Upvote 0

Peter Simpson

Expert
Licensed User
Longtime User
Here you go @DonManfred, here is his entire code, but I've changed it slightly.

Right I'm off out for a meal :)
I nice Ruby Murray and a Amber Nectar sounds nice right about now :)

B4X:
#Region  Project Attributes
    #FullScreen: True
    #IncludeTitle: False
    #ApplicationLabel: NewsTest   
    #VersionCode: 1
    #VersionName: 1.0
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: portrait
    #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes
   
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim NewsUrl As String  = "http://www.prcamels.ae/json/news.json.php"
    Dim NewsJson As String
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim Table1 As Table
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("TestNews")
   
    Dim GetPage As HttpJob
    GetPage.Initialize("GetPageJob", Me)
    GetPage.Download(NewsUrl)
    ProgressDialogShow2("يرجى الانتظار جاري التحميل ...", False)
End Sub

Sub JobDone(Job As HttpJob)
    If Job.Success = True Then
        NewsJson = Job.GetString
     
    Dim parser As JSONParser
        parser.Initialize(NewsJson)
     
    Dim root As Map = parser.NextObject
    Dim news_sections As List = root.Get("news_sections")
   
    Table1.Initialize(Me, "Table1", 2)
    Table1.AddToActivity(Activity, 0, 170dip, Activity.Width, Activity.height - (2 * 170dip))
    Table1.SetHeader(Array As String("", ""))
    Table1.RowHeight = 125
    Table1.SetColumnsWidths(Array As Int(100%x - 100dip, 100dip))
 
    For Each colnews_sections As Map In news_sections
        'Dim section_title As String = colnews_sections.Get("section_title")
        Dim news As List = colnews_sections.Get("news")
     
        For Each colnews As Map In news
            Dim news_date As String = colnews.Get("news_date")
            Dim news_title As String = colnews.Get("news_title")
            Dim news_summary As String = colnews.Get("news_summary")
            Dim news_image As String = colnews.Get("image")       
           
            ToastMessageShow(news_image, True)
           
            'Dim news1 As String = colnews.Get("news")
            Log(news_title)
         
            For i = 0 To colnews.Size -1
                Table1.AddRow(Array As String(news_date & CRLF & news_title & CRLF & news_summary , news_image))
                'Table1.AddRow(Array As String("", ""))
                'Table1.AddRow(Array As String(news_title, ""))
                'Table1.AddRow(Array As String(news_summary, ""))
            Next
        Next
        Exit 'ADD EXIT HERE
    Next
        ProgressDialogHide
    Else
        Log("Error: " & Job.ErrorMessage)
    End If     
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
 
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
@Peter Simpson & @DonManfred It worked:

here is the working apk: http://active.selfip.com:83/share.cgi?ssid=0CTwHp7

I have also fixed the gravity and height.

Now I have some more things to fix like Font Color because all text is in same row and I need to change font color of each line and also font weight. Plus there is something i need to fix, I have to display the image as well which i guess can be done with the code below but since I am using single row for everything when I am calling newsimage there is error since newsimage is Bitmap and rest of the fields are string, how can I sort it out?


B4X:
Dim newsimage As Bitmap
Dim GetImage As HttpJob
GetImage.Initialize("GetPageJob", Me)
GetImage.Download(news_image)
newsimage = Job.GetBitmap
Table1.AddRow(Array As String(news_date & CRLF & news_title & CRLF & news_summary , newsimage))
 
Upvote 0

Peter Simpson

Expert
Licensed User
Longtime User
TableView doesn't support images :mad:
ListView is the way to go. You already have the basic code in place, just replace the TableView with an ListView and tweak it slightly.

By the way, I'm no expert, @DonManfred will know if I'm correct or not.

I'm probably wrong though...
 
Last edited:
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
OK If we use image view how to carry the text along with it. and how to make all items scroll. So in that case I might have to use scroll view?And Add image view panel in that scroll view?
 
Upvote 0

Shahid Saeed

Active Member
Licensed User
Longtime User
OK let me dig through the link, I will get back to you if I'm stuck. You people are really a hope to finish this project.
 
Upvote 0
Top