PDA

View Full Version : چند سوال در مورد لیست ویو



milad.programmer
پنج شنبه 28 خرداد 1394, 23:15 عصر
سلام دوستان من کلا در لست ویو مشکل دارم یعنی کداشو نمیتونم درک کنم تو چندتا سایت هم رفتم اموزش درستی ندادن فقط نوشتن برای ساخت لیست ویو از این کد استفاده کنید. ولی من میخامکلا کداشو یاد بگیرم. اگه کسی لطف کنه و یه مقدار برای خط به خط کدهای لیست ویو توضیح بده واقعا ممنون میشم.
مثلا چندتا سوال که برام بیش اومده اینه که چرا حتما لیست ویو رو ایدیش رو باید @android:id/list قرار بدیم اگه یه چی دیگه بزاریم چی میشه؟
چرا باید کلاسی که میسازیم extend روبزاریم ListActivity ؟ چه فرقی میکنه اگه همون اکتیویتی ساده بزاریم؟
و اینکه کلا یه این خط دستور رو نمیتونم بفهمم اگه میشه اینو جز به جز بگین چیه:
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,classnam e);
setListAdapter(adapter);


من که Layout اینو ندارم :.R.layout.simple_list_item از کجا اومده؟
کلا همین دو خط و سوال های بالا رو جواب بدین به من کمک بزرگی کردین.

tux-world
جمعه 29 خرداد 1394, 08:19 صبح
وقتی که شما داخل پروژه خودتون لای اوت میسازید اون میشه R بدون چیز اضافی قبل اون. ولی وقتی که دارید از لای اوت های اندروید استفاده میکنید کلمه اندرودی قبلش میاد. شما اجازه ندارید هر چیزی رو اونجا بزارید. یا باید از آی دی های اندروید که دسترسی خوبی نخواهید داشت استفاده کنید و یا از @+id/ برای لای اوت های خودتون.
لیست اکتیویتی همون طور که از اسمش پیداست فقط برای لای اوت لیست استفاده میشه و محدود تر از اکتیویتی خاصیت داره ولی برای لیست امکاناتش کاملتره
و اینکه شما اون لای اوت رو ندارید. اگه قبلش اندروید اومده باشه از لای اوت های آماده اندروید داره استفاده میکنه :لبخندساده:

#root#
جمعه 29 خرداد 1394, 10:12 صبح
مثلا چندتا سوال که برام بیش اومده اینه که چرا حتما لیست ویو رو ایدیش رو باید @android:id/list قرار بدیم اگه یه چی دیگه بزاریم چی میشه؟
این تنها زمانی لازم هست که از ListActivity استفاده کنیم.


چرا باید کلاسی که میسازیم extend روبزاریم ListActivity ؟ چه فرقی میکنه اگه همون اکتیویتی ساده بزاریم؟
این کار اجباری نیست، کلاس ListActivity صرفا جهت تسهیل کار با ListView چند تا متد اضافه تر داره نسبت به Activity.

مثلا با اون id که بالا نوشتید دیگه نیازی به تعریف و مقدار دهی یک ListView با findViewById ندارید، چون این کار در این کلاس قبلا انجام شده،
و شما برای دسترسی به ListView میتونید از متد getListView استفاده کنید و ...

دیدن سورس (https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/ListActivity.java) این کلاس هم خالی از لطف نیست :)

milad.programmer
جمعه 29 خرداد 1394, 12:04 عصر
simple_ list_item_1
این چیه؟ اگه بجای این قرار بدیم simple_ list_item_2 چی میشه؟