آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

ارجاع به id یک TextView ، با تعریف رشته (string)، در برنامه نویسی اندروید

معمولا به id یک TextView به صورت زیر ارجاع داده می شود :


TextView tv = (TextView) findViewById(R.id.myTextView);

که در آن، myTextView ، همان id تعریف شده برای TextView می باشد.

اما گاهی نیاز داریم که ارجاع به id برای TextView به گونه ای باشد که بتوانیم با استفاده از رشته های (string) مورد نظرمان، id را بسازیم، تا آزادی عمل بیشتری داشته باشیم.

برای این منظور، id برای TextView را به صورت زیر تعریف می کنیم :


String textId = "myTextView";
int resID = getResources().getIdentifier(textId , "id", getPackageName());
TextView tv = (TextView) findViewById(resID);

و یا به شکل زیر (شکل دوم) :


String textId = "myTextView";
int resID = getResources().getIdentifier(textId , "id", "package.name");
TextView tv = (TextView) findViewById(resID);

که در آن، "package.name" ، نام package برنامه اندروید مورد نظر ما می باشد.

همچنین در هنگام تعریف یک متن جدید برای TextView نیز می توان از این روش استفاده نمود. به کدهای زیر توجه کنید، این کدها روش عادی برای تعیین id مربوط به عکسی است که می خواهیم در TextView نمایش داده شود :


TextView tv = (TextView) findViewById(R.id.myTextView);
tv.setText(R.string.my_text);

که در آن، myTextView ، همان id تعریف شده برای TextView می باشد و my_text ، یک رشته (string) می باشد که در فایل strings.xml تعریف شده است.

به جای کدهای بالا، می توانیم از کدهای زیر استفاده کنیم :


TextView tv = (TextView) findViewById(R.id.myTextView);
String textName = "my_text";
int resID = getResources().getIdentifier(textName, "string", getPackageName());
tv.setText(resID);

و یا به شکل زیر (شکل دوم) :


TextView tv = (TextView) findViewById(R.id.myTextView);
String textName = "my_text";
int resID = getResources().getIdentifier(textName, "string", "package.name");
tv.setText(resID);

که در آن، "package.name" ، نام package برنامه اندروید مورد نظر ما می باشد.

نویسنده علیرضا گلمکانی
شماره کلید 220
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)