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

اشکال ! طراحی Custom view ساده

mahdar  10 سال پیش  10 سال پیش
0 0

سلام   دوستان
وقتتون بخیر

توی اموزشی که اقای کاشی زاده ارائه دادن (custom_view_1)دقیقه 12 ، وقتی من  custom که طراحی کردم میندازم داخل لایه main
چیزی نشون نمیده !!! حتی وقتی اجرا میگیرم همینطور!
چرا؟
تشکر از حضورتون

 

0 0
سلام ، CustomView ای که ساخته میشه ، در متد initializer ، یه لایه xml رو inflate میکنه . آیا اون لایه رو ساختید ؟ ( در آموزش استاد این لایه شامل یه TextView و دو Button هست و نام فایل custom_view.xml هست ) . (10 سال پیش)
0 0
سلام ، بله اونو ساختم ! بدون هیچ مشکلی ایا میشه مشکل از ایکیلپس باشه ! (10 سال پیش)
0 0
نمیدونم ، شاید ! لایه ای که ساختین داخل main نشون داده میشه ؟ و فقط در CustomView نشون نمیده ؟! (10 سال پیش)
0 0
سلام لطفا کدی که نوشتین رو تو سوالتون بیارین .شاید مشکل از کدتون باشه. (10 سال پیش)
0 0
دقیقا همینطوره ک میگید. (10 سال پیش)
0 0
سلام اینم کد (10 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
mahdar  10 سال پیش
0 0

package com.example.custom_view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Custom  extends LinearLayout{

   

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

    public Custom(Context context) {
        super(context);
            initaliezr(context);
    }


        private void initaliezr( Context context){
       
            if(isInEditMode()){
            return;
                            }
                           
   
            LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   
        View customView = inflater.inflate(R.layout.custom_view,this);
        final TextView txtCustom_View=(TextView)customView.findViewById(R.id.txtCustom_View);
        Button btn_ok=(Button)customView.findViewById(R.id.btn_ok);
        Button btn_cancel=(Button)customView.findViewById(R.id.btn_cancel);
       
       
        btn_cancel.setOnClickListener( new OnClickListener() {
           
            @Override
            public void onClick(View arg0) {
               
                txtCustom_View.setText(" Clilcke On Cancel Button ");
            }
        });
       
        btn_ok.setOnClickListener( new OnClickListener() {
           
            @Override
            public void onClick(View arg0) {
                txtCustom_View.setText(" Clilck On Ok Button ");       
               
            }
        });
    }
   
}
0 0
کد را داخل تگ کد قرار بدین و یک بار eclipse را ببند و باز کن اگه ویو درست باشه نشون میده (10 سال پیش)
0 0
متد initaliezr رو در تمام Constructor ها وارد کنید ببینید درست میشه . (10 سال پیش)
0 0
رضا نفهمیدم چی میگی ،مبتدیم . !Constructor (10 سال پیش)
+1 0
تو Constructor اولی متد initaliezr رو وارد نکردی. (10 سال پیش)
0 0
علی میشه کدی ویرایش کنی برام بفرستی منظورم از Constructor نمیفهمم مرسی (10 سال پیش)
+1 0
Constructor یعنی سازنده کلاس و دقیقا همنام کلاسه . وقتی یک شی از یه کلاس میسازی سازنده اون کلاس به طور اتوماتیک فراخوانی میشه و کارش اینه که فیلدهای اون کلاس رو برای اون شی مقدار دهی میکنه . کلاس شما دو Constructor داره ( public Custom() ) که در اولی initaliezr رو ننوشتید . (10 سال پیش)
0 0
ویدیوهای استاد رو با دقت ببینید . ببینید متد initaliezr که میسازن ، کجاها کپی میکنن . (10 سال پیش)
پاسخ به سوال 
Ali  10 سال پیش
0 0

 

به این Constructor  که در ابتدای کلاست نوشتی 

  public Custom(Context context, AttributeSet attrs) {
        super(context, attrs);
        

    }

 

متد initaliezr  اضافه کن .

یعنی : 

 public Custom(Context context, AttributeSet attrs) {
        super(context, attrs);
        initaliezr(context);

    }
پاسخ به سوال 
mahdar  10 سال پیش
0 0

مرسی از همه ی دوستان مشکل همین بود برطرف شد
تشکر :))


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