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

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

احمد اسدی  11 سال پیش  11 سال پیش
0 0

سلام؛

من یه MainActivity دارم که از ActivityEnhanced اکستند شده .

داخل کلاس " ActivityEnhanced " هم کدهای زیر رو قرار دادم:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Log.i("TAG","MyTaag");
Typeface bsina =Typeface.createFromAsset(getAssets(), "fonts/BSina.ttf"); LayoutInflater inflater = LayoutInflater.from(this); // View theInflatedView = inflater.inflate(R.layout.mlogoview, null); // Button btn33 =(Button)theInflatedView.findViewById(R.id.btnSub); btn33.setTypeface(bsina);
}

ولی خطای فورس کلوز رو میده.

چرا ؟

 

0 0
logcat میزاری دوست عزیز (11 سال پیش)
+1 0
چون قبل از اینکه Button در اکتیویتی بوجود بیاد شما دارید مقدار دهیش میکنید (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
MeY3am  11 سال پیش
+1 0

شما در این اکتیویتی هیچگونه لایه ای رو set رو نکردین اگه کنترل btnSub مربوط به MainActivity هستش پس بهتره اونو داخل اکتیویتی مربوطه معرفی و cast کنید، و دلیل دیگشم اینه که شما متغیر فونتتون رو public نکردین به این صورت بنویسید

public class MainActivity extends ActivityEnhanced{

    public Typeface bsina;
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bsina = Typeface.createFromAsset(getAssets(), "fonts/bsina.ttf");
        LayoutInflater inflater =LayoutInflater.from(this);
View theInflatedView = inflater.inflate(R.layout.mlogoview,null);
Button btn33 =(Button)theInflatedView.findViewById(R.id.btnSub);
btn33.setTypeface(bsina);
0 0
ممنونم میثم جان؛ ولی فکر کنم منظورم رو خوب توضیح ندادم. عزیز جان؛ onCreate من داخل کلاس ActivityEnhanced هستش. و داخل این کلاس لازم نیست هیچ اکتویتی هی Set بشه. فکر کنم باید از طریق inflate کردن لایه ها، به کنترلی که داخل اون لایه هستش دسترسی پیدا کنم... ولی نمیدونم چطور. (11 سال پیش)
+2 0
سوالتون رو ویرایش کنید و کد هر دو کلاس رو بزارید و بگید چیکار میخوایید بکنید؟ :) (11 سال پیش)

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