PDA

View Full Version : تغییر فونت عناصر موجود در لیست ویو



gilas1368
شنبه 17 آبان 1393, 19:24 عصر
سلام دوستان

من ی لیست ویو دارم ک برای آیتم هاش ی لایه جدا طراحی کردم
در حال حاضر داره درست کار میکنه و داده ها رو ک بهش bind میکنم رو درست نمایش میده
حالا من میخام فونت آیتم ها رو عوض کنم خودم از کد زیر استفاده میکنم اما کار نمیکنه:



Typeface font = Typeface.createFromAsset(getAssets(), "fonts/SYekan.ttf");
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_IN FLATER_SERVICE);
View view = inflater.inflate(R.layout.list_calendar_item, null);
TextView textView = (TextView) view.findViewById(R.id.txtDate);
textView.setTypeface(font);

میخاستم ببینم چطور میشه فونت آیتم های موجود روی لیست ویو رو خارج از ArrayAdapterاش تغییر داد؟

mrtzxxx
شنبه 17 آبان 1393, 20:15 عصر
متغیر font که از نوع typeface‌ هستش رو عمومی تعریف کن . خط اولتو بردار و هر جا میخوای تغییر کنه بذار . بعد از تغییر لیست منو رو refresh‌کن .

gilas1368
شنبه 17 آبان 1393, 21:06 عصر
متغیر font که از نوع typeface‌ هستش رو عمومی تعریف کن . خط اولتو بردار و هر جا میخوای تغییر کنه بذار . بعد از تغییر لیست منو رو refresh‌کن .

متوجه نشدم دقیقا
میشه خاهش کنم کد رو ویرایش کنین

aebrs@yahoo.com
یک شنبه 18 آبان 1393, 09:38 صبح
روش نوشتن اداپتور و فراخوانی آن مهم است باید آن بخشهای کد را هم می گذاشتی تا بتوانند بر اساس آنها راهنمائی انجام شود
اگر اداپتور جدا بود مشکل نداشتید به نظر می رسد که روش فراخواین اداپتور خاص است که دسترسی به اشیاء ندارید
محیط کاری خود را هم مشخص کنید
موفق باشید

gilas1368
یک شنبه 18 آبان 1393, 10:34 صبح
روش نوشتن اداپتور و فراخوانی آن مهم است باید آن بخشهای کد را هم می گذاشتی تا بتوانند بر اساس آنها راهنمائی انجام شود
اگر اداپتور جدا بود مشکل نداشتید به نظر می رسد که روش فراخواین اداپتور خاص است که دسترسی به اشیاء ندارید
محیط کاری خود را هم مشخص کنید
موفق باشید

محیط کاری اندروید استدیوه
روش خاصی نیست، adapter ی simpleAdapter هستش ک داده هایی ک از وب سرویس دریافت میشه بعد از تجزیه و تحلیل بهش bind میشه و نمایش داده میشه

tux-world
یک شنبه 18 آبان 1393, 12:14 عصر
منظورم دوستمون یه همچین چیزیه:


private Typeface font = Typeface.createFromAsset(getAssets(), "fonts/SYekan.ttf");

بعد از همین font استفاده کنید برای مواردی که میخوایید فونت رو عوض کنید. چون font به صورت متد تعریف شده همه جای اون کلاس میتونین ازش استفاده کنید راحت

gilas1368
یک شنبه 18 آبان 1393, 12:43 عصر
منظورم دوستمون یه همچین چیزیه:


private Typeface font = Typeface.createFromAsset(getAssets(), "fonts/SYekan.ttf");

بعد از همین font استفاده کنید برای مواردی که میخوایید فونت رو عوض کنید. چون font به صورت متد تعریف شده همه جای اون کلاس میتونین ازش استفاده کنید راحت

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

tux-world
یک شنبه 18 آبان 1393, 13:01 عصر
خوب از کودوم اس دی کا کودوم نسخش دارید استفاده میکنید ؟ برای کودوم نسخه اندروید دارید برنامه مینویسید؟ کد مشکلی نداره. کدهای بیشتری از برنامتون بزارید ببینیم. فونت دیگه ای تست کردید ؟ چند تا مورد دیگه تست کنید ممکنه از اون هم باشه. من هم این مشکل رو داشتم

slr560
یک شنبه 18 آبان 1393, 13:19 عصر
همین چیزی که نوشتید توی پست اول درسته . فونت رو مستقیم بریزید توی پوشه assets و وقتی میخواین Typeface رو تعریف کنید دقیقا اسم فونت باید یکی باشه (کوچکی بزرگی رعایت بشه)


private Typeface font = Typeface.createFromAsset(getAssets(), "SYekan.ttf");

gilas1368
یک شنبه 18 آبان 1393, 13:30 عصر
دوستان عزیز اول از همتون ممنونم و اما بعد
باید بگم ک میدونم چطوری باید فونت ی textview رو تغییر بدم
در حال حاضر هم توی سایر صفحات دارم از همین کد استفاده میکنم و جواب هم میده
مشکل اینجاست ک وقتی داده ها رو میذارم روی لیست ویو و بعدش میام و textview رو پیدا میکنم و فونت رو براش set میکنم قبول نمیکنه
این کد رو قبل از bind کردن داده ب لیست ویو هم گذاشتم اما کار نکرد
بازم با فونت پیشفزض اندروید لیست ویو و textviewهای داخلش رو نمایش میده

میدونم کد درسته و کار میکنه
اما نمیدونم چرا روی آیتم های لیست ویو کار نمیکنه و با فونت پیشفرض نمایشش میده

tux-world
یک شنبه 18 آبان 1393, 14:47 عصر
اوکی مشکلی نیست یه کاستوم اداپتر مثل این بنویس.


class CustomAdapter extends ArrayAdapter<CharSequence>{

Context context;
int layoutResourceId;
CharSequence data[] = null;
Typeface tf;

public CustomAdapter(Context context, int layoutResourceId, CharSequence[] data, String FONT ) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
tf = Typeface.createFromAsset(context.getAssets(), FONT);
}

و به شکل زیر فونت رو بهش ست کن

listAdapter = new CustomAdapter(this, R.layout.custom_list_text, R.array.abra_hotel, "name_of_font.ttf");