بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مقدار دهی typeface در لیست ویو Preference ؟ (حل شد)

مدیریت گفتگو
Vahid 11 سال پیش
آخرین تغییر: 10 سال پیش

سلام...
من بر اساس آموزش ها یک صفحه Preference ساختم و همچنین با استفاده از Style تغییراتی در ظاهرش ایجاد کردم.

اما حالا میخوام با استفاده از کد، فونت رو تغییر بدم ... ولی نمیدونم چطور میشه مقدار TypeFace عناصر لیست ویو این Preference رو تغییر داد!؟

ممنون میشم اگر دوستان راهنمایی کنند.

نظرات

MeY3am 11 سال پیش
به عنوان پاسخ جدید توضیح داده شد!

پاسخ‌ها 2

MeY3am 11 سال پیش

شما باید یه کلاس به نام MyTextView بسازید و این کدهارو داخلش بنویسید

package name_package_shoma;

import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.widget.TextView; public class MyTextView extends TextView { public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initialize(); } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); initialize(); } public MyTextView(Context context) { super(context); initialize(); } private void initialize() { if ( !isInEditMode()) { Typeface b = Typeface.createFromAsset(getContext().getAssets(), "b.ttf"); setTypeface(b); } } }

به جای b میتونید نام فونت خودتون رو بنویسید

و در فایل xml لایه ای که میخوای کنترل، فونت موردنظر رو داشته باشه مثلأ TextView

به جای خطی که معرف TextView هستش یعنی اولین خط

 <TextView

این کد رو جایگزین کنید

 <name_package_shoma.MyTextView

به طور مثال به این صورت

 <name_package_shoma.MyTextView
android:id="@+id/txtone" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="TextView" android:textColor="#ffffff" />

به جای name_package_shoma نام پکیج خودتون رو بنویسید!

 این بهترین راه حل هستش، هرجا مشکل داشتید همین جا بفرمایید!

موفق باشید!

نظرات

Vahid 11 سال پیش
مرسی میثم عزیز :D مشکلم با کمکت و البته یه سرچ تکمیلی در مورد توضیحاتت حل شد ... در یک ارسال جدا نتیجه رو میذارم تا دوستان دیگه هم استفاده ببرن.
MeY3am 11 سال پیش
خواهش میکنم دوست عزیز موفق باشید!
MeY3am 11 سال پیش
خواهش میکنم دوست عزیز ... موفق باشید!
MeY3am 11 سال پیش
ای بابا همش اسپم شد که :D
amin2525 10 سال پیش
عالی بود ممنون
Vahid 11 سال پیش

ممنونم از میثم عزیز برای کمکش...
با استفاده از اطلاعاتی که داد یه سرچ دقیق تر و تکمیلی تر انجام دادم و به این پیج رسیدم: لینک


همینطور که در لینک و ارسال میثم عزیز دیده میشه، یک کلاس میسازیم و اون شی مد نظرمون رو اکستند میکنید، سپس تمام کانستراکتور هاش رو وارد میکنیم. مثلا برای مثال من میشه کلاسی که از CheckBoxPreference اکستند شده.
بعد onBindView رو باز نویسی میکنیم و میتونیم به سادگی به تکست ویو، چک باکس یا هر چیز دیگه ای دسترسی داشته باشیم!

بعد از این فایل xml رو ادیت میکنیم و به جای اسم فیلد به روشی که میثم عزیز توضیح داد تغییر ایجاد می کنیم.

 

 public class MyCheckBoxPreference extends CheckBoxPreference {

public MyCheckBoxPreference(Context context) {
super(context);
}


public MyCheckBoxPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}


public MyCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}


@Override
protected void onBindView(View view) {
super.onBindView(view);

TextView titleView = (TextView) view.findViewById(android.R.id.title);
titleView.setTypeface(G.trafficfont);
}
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .