21- ضروریات اندروید: کار با رشته ها و آرایه های رشته ای
آدرس: http://code.tutsplus.com/tutorials/android-essentials-working-with-strings-and-string-arrays--mobile-7838
یکی از تجربیات اعصاب خرد کن که در مورد برنامه نویسان ضعیف رخ می دهد این است که رشته های کاراکتری را مستقیماً درون متن کدهای خود درج می کنند.
مطمئنا آنها دلایل خوبی برای این کار دارند مخصوصا موقعی که میخواهند خود را اشکال زدایی کنند اما بصورت عام اگر اپلیکیشن اندروید بخواهد یک رشته ای را روی صفحه نمایش نشان دهد این داده به منابع اندروید تعلق دارند نه به خود کد.
در زیر مزایای استفاده از رشته ها را به عنوان یک منبع ذکر میکنیم:
این کار باعث مرکزیت رشتهها که اپلیکیشن از آن استفاده میکند در یک جا جمع شود که به راحتی قابل مدیریت باشد.
از رشته ها موقعی به عنوان منبع استفاده میشود که درون کد نیز از آن استفاده شود
به راحتی میتوانند بینالمللی شوند اگر شما اجازهی حمایت از چندین زبان درون یک پکیج اپلیکیشن بدهید.
.رشته کد شما را در بر هم نمیکند
. باعث وضوح و راحتی در ماندگاری میشود
حال ببینیم رشته ها و مهمتر از آنها آرایه های رشته ای چگونه به صورت مفید به اپلیکیشن اضافه نماید.
قدم اول: تعریف منابع رشته ای برای منابع رشته های انفرادی
یک ورودی منبع رشته ای برای هر کدام از رشته ها که درون اپلیکیشن تعریف میکنیم استفاده میشود. آن را متناسب با منبع خود نامگذاری نمائید. مانند کد زیر:
توجه داشته باشید Race_ پیشوند هر یک از منابع رشته است. این کار میتواند به اعضای تیم برای ارتباط بین رشته ها کمک نماید.
قدم دوّم: منابع رشته ی خود را به صورت برنامهریزی شده بارگذاری نماید. شما به راحتی برای استفاده از رشته ی درون کد میتوانید از تابع get string کلاس Resource استفاده نماییدکد زیر یک منبع رشته را در کلاس activity بارگذاری میکند.
قدم سوّم: تعریف کردن آرایهی رشته ای با استفاده از مراجع منبع رشته
حالا فرض کنید که شما بخواهید یک آرایه از کاراکترها تشکیل دهید. مطمئناً شما میتوانید تمام آنها را به صورت انفرادی در یک قطعه کد جاوا بارگذاری نمائید و یک آرایهی رشتهای در حافظه ایجاد نمائید. امّا شما باید IDname ها و مرجع هر منبع را درون کد شناسایی نمائید به جای این کار بهترین راه این است که یک منبع آرایهی رشتهای که به رشتههای انفرادی اشاره میکند را جمعآوری نمائیم.
مرحله 4: بارگذاری منابع رشته ای تان از طریق برنامه نویسی
شما به راحتی می توانید یک آرایه رشته ای را با استفاده از روش getStringArray() از کلاس منابع در کد خود بارگذاری کنید.
کد زیر می تواند کلاس فعالیت شمارا برای بارگذاری یک منبع آرایه تعریف شده در برنامه هایتان کاهش دهد.
String[] cRaces = getResources().getStringArray(R.array.races_array);
|
|
مرحله 5 :
یکی از دلایل مفید انجام دادن این کار برقرار کردن یک کنترل است که نیازمند یک مبدل داده است،
که ساده ترین آن یک آرایه است. اگر شما با استفاده از مبدلهای داده برای برقرار کردن کنترل های اسپینر و مشابه آن ناآشنا هستید بخش خوشامدگویی آموزش اسپینر در وب سایت توسعه دهنده آندروید را چک کنید. با این حال، از روش شرح داده شده در این آموزش لینک شده به راحتی آنچه که ما در این آموزش سریع توصیف کردیم نیست،چرا که محتویات رشته اولیه در منابع آرایه رشته ای، به جای منابع رشته تعریف می شود.
استفاده از منابع آرایه رشته ای به شما اجازه می دهد تا از مراحل اتصالبه مبدل اطلاعات برای کنترل خود عبور کنید. به عنوان مثال،یک کنترل اسپینر ساده، و یا منوی کشویی، می تواند با استفاده از یک منبع آرایه رشته ای بدون مزاحمت مبدل های مزاحم ایجاد شود. شما به سادگی یک کنترل اسپینر را به فایل طرح خود اضافه می کنید و اندروید آن را تنظیم می کنید: صفت را به آرایه رشته ای که ایجاد کردید وارد میکنید و شما آنرا انجام دادید.برای مثال:
<Spinner
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/spinnerOfCharacterRaces"
android:entries="@array/races_array">
</Spinner>
این یک اسپینر کنترلی را تعریف می کند که هر یک از کاراکترهای نژاد را به عنوان گزینه نشان می دهد، همانطور که در شکل نشان داده شده است:
در کلاس فعالیت تان، شما می توانید یک آیتم شنونده انتخاب شده را برای گرفتن زمانی که کاربر یک شخصیت مسابقه خاص را انتخاب میکند، مثل این:
Spinner cRaceSpinner = (Spinner) findViewById(R.id.spinnerOfCharacterRaces);cRaceSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,arg2, long arg3) {
String strChosenRace = (String) arg0.getItemAtPosition(arg2);
}
public void onNothingSelected(AdapterView<?> arg0) {}
});
در اینجا ما به سادگی هر زمان که یک آیتم در مطالب که انتخاب شده است واکنش نشان می دهیم.ما به داده انتخاب شده مراجعه می کنیم و از روش getItemAtPosition() استفاده می کنیم که، در مورد یک منبع آرایه رشته ای،خود داده های رشته ای است.
- ۹۳/۰۳/۰۳
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.