کار با لیست ویو و ساخت آرایه رشته ای در xml

کار با وای فای – مشاهده لیست هات اسپاتها
تیر ۴, ۱۳۹۶
خطا در لاراول ۵٫۴ با پیغام Specified key was too long
مهر ۹, ۱۳۹۶

به نام خدا سلام دوستان

امروز میخوام نحوه کار با لیست ویو و گرفتن یک آرایه رشته ای از فایل XML در اندروید رو با هم یاد بگیریم برای توضیحش باید بگم که در این سناریو ، ما یک اپ خواهیم ساخت که در اون لیستی از اسم دوستان من 😜 نمایش داده می شه و اگر روی هرکدام از اون اسمها کلیک شد در صفحه جدید اسم اون دوست من به صورت جداگانه نمایش داده می شود.

بخش اول: ساخت لیستی از مقادیر

پیش توضیح: در اندروید زمانی که بخواهیم یک مقدار رشته ای از قبل تعربف شده رو نمایش بدیم بهترین راه تعریف اون رشته داخل فایل String در داخل فولدر res>values و بعد از اون استفاده از اون هست

در اندروید این امکان وجود داره که مقدار رشته ای مرتبط به هم به صورت آرایه ای در یک فایل XML ذخیره شود و در زمان لازم به کاربر نمایش داده شود (مثال: برای مقادیر مختلف یک تنظیم در اندروید)

برای تعریف یک آرایه رشته ای در فایل XML کافیست بر روی فولدر values کلیک راست کرده و از قسمت NEW گزینه Values resource files رو انتخاب کنید و برای اون یک اسم با پسوند XML رو انتخاب کنیم (برای مثال من اسم data.xml رو انتخاب کردم) و در داخل تگ resources خط کدهای زیر را وارد کنید

 

حالا برای اینکه بتونید به این آرایه در برنامه دسترسی پیدا کنید باید در قسمت کدنویسی (فایل جاوای اکتیویتی) یک آرایه ی رشته ای ایجاد کرده و مقدار آن را به صورت زیر تعیین می کنیم

توجه کنید اسمی که زمان ساخت string-array داده شد (در اینجا my_array) کلید شما برای دسترسی به مقادیر این آرایه می باشد

خب برای اینکه بتونید به صورت لیستی ، مقادیر این آرایه را نمایش دهیم دو راه وجود داره

  • استفاده از المان ListView
  • استفاده از ListActivity به جای اکتیویتی

با توجه به اینکه هدفمون فقط ساخت یک لیست از مقادیر هست و المانهای دیگه ای داخل صفحه نداریم بهترین گزینه ListActivity است

بعد از اینکه اکتیویتی مورد نظر را از نوع ListActivity ساختیم و کافیست از setListAdapter به صورت زیر ، برای مقدار دهی استفاده کنیم

توضیحاتی لازم نیست به جز اینکه : در صورتی که بخواهید به جای لیست ساده و پیشفرض اندروید از یک لیست شخصی سازی شده استفاده کنید کافیست به جای android.R.layout.simple_list_item_1 از یک مقدار دیگر مانند زیر استفاده کنیم

کد در کد بالا به جای یک پارامتر android.R.layout.simple_list_item_1 از دو پارامتر R.layout.activity_main و R.id.tv_items استفاده شده که پارامتر اول فایل مورد نظر و دومین پارامتر ایدی المان مورد نظر میباشد.

با این کار میتوانید لیستی از هر نوع المان که مد نظر دارید ایجاد نمایید (مثلا لیستی از Button ها یا لیستی از TextView ها و یا حتی لیستی از یک بخش خاص مانند Linear_Layout)

tip : در صورتی که بخواهید رنگ متن را در یک TextView و مواردی از این دست تغییر دهید از android:textColor=”@color/highlighted_text_material_light” استفاده میشود که به جای @color/highlighted_text_material_light میتوانید هر رنگ دیگری را وارد کنید

بخش دوم: ایجاد قابلیت کلیک و نمایش اطلاعات در صفحه مجزا

برای اضافه کردن قابلیت کلیک ابتدا باید یک شی از ListView ساخته بشه و مقدار آن برابر با getListView قرار داده بشه (getListView متدی از کلاس ListActivity میباشد که لیست ویوی ساخته شده در اکتیویتی را به شی لیست ویوی ساخته شده ما میدهد) ، در این حالت کافیست از متد setOnItemClickListener به صورت زیر استفاده کنیم:

حال در قسمت write your code میتوانید کدهای مد نظر را وارد کنید

که ما در این مرحله لازمه که یه اینتنت ساخته و مقدار اسم مورد نظر را بهش ارسال کنیم

متد onItemClick دارای پارامترهای AdapterView<?> parent, View view, int position, long id می باشد که برای گرفتن مقدار اسم مورد نظر میتوان از یکی از آنها در موقعیت های مختلف استفاده کرد: برای مثال  position ایندیت آرایه را بر می گرداند و از طریق این ایندکس می توان به مقدار آن دسترسی پیدا کرد و یا از طریق View ارسال شده به وسیله پارامتر میتوان به صورت زیر مقدار هر ایتم را گرفت

خط کد بالا زمانی استفاده می شود که هر ایتم از نوع TextView باشد (که در این اپ ما از TextView برای نمایش هر آیتم استفاده کردیم (R.id.tv_items)).

در نهایت کد به صورت زیر خواهد شد:

در نهایت هم باید اکتیویتی دیگری ساخته شود و در آن اکتیویتی مقدار ارسال شده توسط Intent گرفته و نمایش داده شود

به صورت کد زیر

این کدها در مقالات و بحث های قبلی مطرح و نحوه گرفتن اطلاعات از اینت گفته شده است

امیدوارم این مقاله کاربردی بوده باشه و توضیحات حوصله شما رو سر نبرده باشه

مجری پروژه های نرم افزاری شامل: تحلیل و پیاده سازی اپلیکیشن های اندروید ، IOS ، وب اپلیکشن

مشاور در حوزه نرم افزار و بخش فنی استارتاپ های حوزه IT