آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

Vahid  11 سال پیش  9 سال پیش
+2 0

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

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

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

+1 0
به عنوان پاسخ جدید توضیح داده شد! (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
MeY3am  11 سال پیش
+9 0

شما باید یه کلاس به نام 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 نام پکیج خودتون رو بنویسید!

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

موفق باشید!

+1 0
مرسی میثم عزیز :D مشکلم با کمکت و البته یه سرچ تکمیلی در مورد توضیحاتت حل شد ... در یک ارسال جدا نتیجه رو میذارم تا دوستان دیگه هم استفاده ببرن. (11 سال پیش)
0 0
خواهش میکنم دوست عزیز موفق باشید! (11 سال پیش)
0 0
خواهش میکنم دوست عزیز ... موفق باشید! (11 سال پیش)
+1 0
ای بابا همش اسپم شد که :D (11 سال پیش)
0 0
عالی بود ممنون (9 سال پیش)
پاسخ به سوال 
Vahid  11 سال پیش
+4 0

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


همینطور که در لینک و ارسال میثم عزیز دیده میشه، یک کلاس میسازیم و اون شی مد نظرمون رو اکستند میکنید، سپس تمام کانستراکتور هاش رو وارد میکنیم. مثلا برای مثال من میشه کلاسی که از 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);
}
}

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