tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            نمایش اطلاعات Json در لیست ویو با Volley

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش اندروید
            • نمایش اطلاعات Json در لیست ویو با Volley
            آشنایی با CSS3
            همه چیز در مورد CSS3
            3 بهمن 1395
            برنامه CodeLobster PHP Edition
            برنامه کاربردی codeLobster PHP Edition
            7 بهمن 1395
            منتشر شده توسط خانم منطق
            نمایش اطلاعات Json در لیست ویو با Volley

            نمایش اطلاعات Json در لیست ویو با Volley

            نمایش اطلاعات Json در لیست ویو با Volley ، هنگام کار با داده های سمت سرور در اندروید همانگونه که در پست قبل به طور کامل توضیح داده  شد باید از یک کتابخانه برای ارتباط با سرور استفاده کرد که ما از کتابخانه Volley به دلایل ذکر شده استفاده میکنیم.

            نمایش اطلاعات JSON در ListView با استفاده از کتابخانه Volley

            طبیعتا داده ها پس از ثبت در بانک سرور گاهی نیاز به ارسال به برنامه برای مشاهده کاربر دارند. در اکثر مواقع نمایش داده ها درون ابزارهایی مثل ListView انجام میشود چون حرکت بین داده ها و نمایش داده ها را قابل کنترل تر میکند.

            نمایش دادهای JSON (که در پست مربوطه به طور کامل توضیح داده شده) در LIstView کار سختی نیست اما نیاز به مقداری ریزکاری دارد که ما در این پست آموزشی به طور کامل به آنها خواهیم پرداخت!

            بدین منظور پروژه ای با نام دلخواه ایجاد کنید و گام به گام با ما جلو بروید تا در نتیجه لیستی شامل اطلاعات جیسون خود داشته باشید

            در ابتدا درون activity_main.xml خود یک ListView ساده ایجاد  کنید

            <ListView
                android:id="@+id/listv"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >
            </ListVieww>
            

            (البته میتوانید لیست خود را سفارشی کنید تا ظاهر جذاب و کاربر پسندی داشتی باشد اما اکنون ما برای سادگی و قابل فهم بودن کار را ساده پیش میبریم)

            فایل xml دیگری ایجاد کنید با نام list_item.xml و دو textView درون آن قرار دهید(ما از ۲ TextView استفاده کردیم چون اطلاعات دریافتی از بانک ۲ مقدار name , city است)

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Text"
                android:id="@+id/name"
                android:textAlignment="center"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="10dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Text"
                android:id="@+id/cities"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="10dpp" />
            

            این فایل xml درواقع سلول های یا آیتم های درون ListView را تشکیل میدهد بدین صورت که با هر رکوردی که از سرور دریافت میشود یک سطر لیست شامل این ۲ تکست ایجاد و مقدار فیلدهای رکورد درون این دو تکست و این دو تکست  درون یک سطر لیست قرار میگردد و به همین روال رکورد های بعدی دریافت و سطرهای لیست ساخته میشوند.

            حال به سراغ فایل های جاوا و کدنویسی های جاوا میرویم! فایل جاوایی با نام CustomListt ایجاد کنید و آن را از   ArrayAdapter<String>  ارث بری یا extends کنید    و خواهید دید پس از extends خطایی مبنی بر ایجاد سازنده دریافت خواهید کرد پس سازنده را حتما با محتوی زیر ایجاد کنید

            public class CustomListt extends ArrayAdapter<String> {
            
                private String[] ids;
                private String[] names;
                private String[] cities;
                private Activity context;
            
                public CustomListt(Activity context,  String[] ids, String[] name, String[] city) {
                    super(context, R.layout.list_item,ids);
                    this.context=context;
                    this.ids=ids;
                    this.names=name;
                    this.cities=city;
                 }
            

            همانگونه که مشاهده میکنید سه آرایه رشته ای نیز ایجاد شده که در واقع برای دریافت فیلدهای مربوط هر رکورد میباشد و **نکته جالب اینجاست که در این مرحله نه مقدار و نه طولشان مشخص نمیشود بلکه درون request مربوط به کتابخانه volley پس از دریافت response متناسب با response طولشان مشخص میشود همچنین مقدار.**

            به علاوه یک مقدار Activity ایجاد شده برای مشخص کردن context برنامه برای ارسال به سازنده نیز اضافه شده.

            حال باید یک ()getView از نوع View را باید override کنیم. وظیفه این متد درواقع چسباندن اطلاعات جیسون به تکست هایی است که قرار است درون لیست ما قرار گیرد

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                LayoutInflater inflater=context.getLayoutInflater();
                View listViewItem=inflater.inflate(R.layout.list_item, null, true);
                TextView txtColorName=(TextView)listViewItem.findViewById(R.id.name);
                TextView txtColorHex=(TextView)listViewItem.findViewById(R.id.cities);
            
                txtColorName.setText(names[position]);
                txtColorHex.setText(cities[position]);
            
                return listViewItem;
             }
            

            درون این متد از LayoutInflater استفاده شده و ما زمانی از این کلاس استفاده میکنیم که بخواهیم درون یک view از یک فایل XML یک شی UI ایجاد کنیم به عبارت ساده تر این کلاس فایل list_item.xml را تبدیل به یک آیتم درون ListView اصلی در activity_main.xml میکند.

            حال به فایل جاوای ActivityMain میرویم و کدهای نهایی را درون آن مینویسیم

            TextView results; 
            String JsonURL = "http://10.0.3.2:8080/tester?action=read"; 
            RequestQueue requestQueue;
            ArrayAdapter<String> adapter;
            ArrayList<String> items;
            ListView listView;
            
            private static String[] ids;
            private static String[] names;
            private static String[] cities;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
            
            
                listView = (ListView) findViewById(R.id.listv);
                items = new ArrayList<String>();
                adapter = new ArrayAdapter(this, R.layout.list_item, R.id.name, items);
                listView.setAdapter(adapter);
            
            }
            

            در متغیرهای تعریف شده JsonURL همان صفحه PHP است که دستورات خواندن از بانک را درونش درج کردیم که به شرح زیر است

            <?php
            
            if (isset($_REQUEST['action'])){
            
                 $action = $_REQUEST['action'];
            
                                    if($action='read'){read();}
            
            }
            
            else{
            
                         echo "Invalid Data";
            
                        exit;
            
            }
            
            function connectToDatabase(){
            
                $connection=mysqli_connect("localhost", "root", "", "test");
            
                if (mysqli_connect_errno()) {
            
                    echo "Failed to connect to MySQL: " . mysqli_connect_error();
            
                }
            
            
            
                return $connection;
            
            }
            
            function read(){
            
                $connection = connectToDatabase();
            
                $result = mysqli_query($connection, "SELECT * FROM table1");
            
            
            
                $output = array();
            
                while($row = mysqli_fetch_array($result)) {
            
                    $record = array();
            
                    $record['ID'] = $row['ID'];
            
                    $record['Name'] = $row['Name'];
            
                        $record['City'] = $row['City'];
            
                    $output[] = $record;
            
                }      
            
                       
            
                echo json_encode( $output);
            
                mysqli_close($connection);
            
                        return  $record;
            
            }
            

            (اگر میخواهید بیشتر درباره این نوع آدرس دهی بدانید به پست آموزش کتابخانه Volley مراجعه کنید)

            درون متد oncreate نیز همانگونه ک مشخص است از ArrayAdapter مربوط به لیست را مقدار دهی کرده ایم که شکل کلی آن بدین صورت است

            public ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects) {
             }
            

            سپس درون متد onStart اطلاعات json را از سرور میگیریم و ارسال میکنیم به لیست

            @Override
            protected void onStart() {
                super.onStart();
                requestQueue = Volley.newRequestQueue(this);
            
                JsonArrayRequest arrayreq = new JsonArrayRequest(JsonURL,
                        new Response.Listener<JSONArray>() {
                            @Override
                            public void onResponse(JSONArray response) {
                                try {
            
                                    ids=new String[response.length()];
                                    names=new String[response.length()];
                                    cities=new String[response.length()];
                                    for (int i = 0; i < response.length(); i++) {
                                        JSONObject jsonObject = (JSONObject)response.get(i);
                                        String color = jsonObject.getString("Name");
                                        String hex = jsonObject.getString("City");
            
                                        ids[i]=String.valueOf(i);
                                        names[i]=color;
                                        cities[i]=hex;
                                        CustomListt cl=new CustomListt(MainActivity.this,ids,names,cities);
                                        listView.setAdapter(cl);
            
                                    }
                                    adapter.notifyDataSetChanged();
            
                                }
                                catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                Log.e("Volley", "Error");
                            }
                        }
                );
                requestQueue.add(arrayreq);
             }
            

            فرم کلی request را توضیح چندان نمیدهیم چون در پست Volley مفصل توضیح داد شده. اما درقسمتی که response برگردانده میشود و خطایی رخ نداده میبینیم که  با یک حلقه for تمامی شی های JSON را دریافت کرده و آن هارا به فیلدهای تشکیل دهنده میشکند  و به کلاس CustomListt که وظیفه ارسال داد ها به لیست را دارد ارسال میکند.

            در نتیجه خواهید دید

            jsonlist

            jsonlist

            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج