PDA

View Full Version : توضیح در مورد کدهای زیر



Hossein8867
یک شنبه 11 مرداد 1394, 19:38 عصر
سلام.لطفا بفرمایید در کد زیر تک تک اجزا چه کاری انجام می دهند مثلا @ یعنی چی و چرا از + یا / استفاده میکنیم.id کارش چیه؟

android:id="@+id/btn_01"

و لطفا بفرمایید چه فرقی بین


@+id

@id

@android



است؟

Nevercom
یک شنبه 11 مرداد 1394, 21:01 عصر
این الگویی هست که توسط فریم وورک اندروید تعیین شده
همونطور که میبینید در XML همه ی مقادیر بصورت String هست، حالا ما نیاز داریم که به روشی مقادیر رو بتونیم از جای دیگری بخونیم (مثلاً همه ی متن ها در فایل strings.xml باشه و در لایه ها فقط ارجاع به متن بدیم و خود متن رو ننویسیم)، برای این حالت اندروید کاراکتر @ رو درنظر گرفته، اگر با این حرف شروع بشه یعنی ما داریم یک آدرس رو می نویسیم که از اونجا داده ها خونده بشه.

هرچی بعد از @ بیاد، دسته بندی رو مشخص می کنه، خب ما در برنامه متن داریم، تصویر داریم، رنگ داریم و... که ماهیتشون با هم فرق می کنه، پس باید بشه از هم تفکیکشون کرد.
پس وقتی می نویسیم drawable@ یعنی این آدرس به دسته بندی Drawable اشاره می کنه.
علامت / که بعد از دسته بندی میاد، همون معنایی که باهاش آشناییم رو میده، یعنی چیزی که بعدش میاد یه اسم هست تو اون دسته بندی که برای ما مهمه.

@category/itemId
مثال:

@drawable/btnBackground

برای id یه حالت خاص هم وجود داره که علامت + هست، توضیح ساده ش اینه که علامت + یعنی نوشتن و بدون این علامت یعنی خواندن. ما داریم میگیم برای این عنصر (مثلاً TextView) این آیدی رو براش ثبت کن و بهمین دلیل از علامت + استفاده می کنیم.
درواقع ما برای اینکه بتونیم به اجزایی که در XML تعریف می کنیم در کدهای جاوا دسترسی داشته باشیم، باید یک شناسه بهشون بدیم و بعد از روی اون شناسه پیداشون کنیم.
دسته بندی id این شناسه ها رو نگه داری می کنه، اگه بخوایم یک شناسه ی جدید اضافه کنیم از + استفاده می کنیم و اگر بخوایم فقط به اون شناسه اشاره کنیم، + رو نمیزاریم

خب همه ی اینها که گفتم در سطح پروژه ی شما وجود دارن، اما اگر بخوایم از خود سیستم چیزی بخونیم، مثلاً یه آیکن که تو خود سیستم عامل اندروید موجود هست، از عبارت android استفاده می کنیم و بعد دسته بندی رو مینویسیم

@android:category/itemId
مثال:

@android:color/white

NeoFighT
یک شنبه 11 مرداد 1394, 21:05 عصر
سلام دوست عزیز

- id مخفف identifier هستش که با ست کردن id برای ویو ها و اجزایه دیگتون میتونید به اونها دسترسی داشته باشید،
وقتی مینویسید android:id یعنی میخواید مثلا برای اون View تون id ست کنید و برای ست کردن id باید از @+id استفاده کنید ،
- از @id وقتی استفاده میشه که مثلا توی RelativeLayout یک TextViewدارید که میخواید پایین یک ImageView نمایش داده بشه و اول با android:id="@+id/imageView1" برای ImageView تون یک آیدی ست کردین به اسم imageView1 و داخل TextView تون میخواید بگید که پایین اون ImageView قرار بگیره و میزنید android:layout_below و مقدارش رو با id ویو ای که میخواید TextView تون زیرش قرار بگیره ست میکنید (مثلا اینجا میخواید زیر یک ImageView که آیدیش imageView1 هست قرار بدید) و آیدی imageView تون رو در قسمت مقدارش اینجوری مینویسید : android:layout_below="@id/imageView1"
- @android هم برای دسترسی به یکسری از ریسورس های خود اندروید که از قبل ساخته شده مثل (ویو ها ، انیمیشن ها ، رنگ ها و ...) دسترسی داشته باشید.

Hossein8867
یک شنبه 11 مرداد 1394, 22:36 عصر
- از @id وقتی استفاده میشه که مثلا توی RelativeLayout یک TextViewدارید که میخواید پایین یک ImageView نمایش داده بشه و اول با android:id="@+id/imageView1" برای ImageView تون یک آیدی ست کردین به اسم imageView1 و داخل TextView تون میخواید بگید که پایین اون ImageView قرار بگیره و میزنید android:layout_below و مقدارش رو با id ویو ای که میخواید TextView تون زیرش قرار بگیره ست میکنید (مثلا اینجا میخواید زیر یک ImageView که آیدیش imageView1 هست قرار بدید) و آیدی imageView تون رو در قسمت مقدارش اینجوری مینویسید : android:layout_below="@id/imageView1"

سلام دوست گرامی.این که میگید مثلا توی RelativeLayout یک TextViewدارید که میخواید پایین یک ImageView نمایش داده بشه یعنی @id روی محل قرارگیری object ها تاثیر داره؟

Hossein8867
دوشنبه 12 مرداد 1394, 16:28 عصر
درواقع ما برای اینکه بتونیم به اجزایی که در XML تعریف می کنیم در کدهای جاوا دسترسی داشته باشیم، باید یک شناسه بهشون بدیم و بعد از روی اون شناسه پیداشون کنیم.
دسته بندی id این شناسه ها رو نگه داری می کنه، اگه بخوایم یک شناسه ی جدید اضافه کنیم از + استفاده می کنیم و اگر بخوایم فقط به اون شناسه اشاره کنیم، + رو نمیزاریم


سلام دوست گرامی.منظورتون از اینکه اگر بخوایم فقط به اون شناسه اشاره کنیم چیست؟