کد را داخل تگ کد قرار بدین و یک بار eclipse را ببند و باز کن اگه ویو درست باشه نشون میده
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
اشکال ! طراحی Custom view ساده
مدیریت گفتگو
آخرین تغییر: 10 سال پیش
سلام دوستان
وقتتون بخیر
توی اموزشی که اقای کاشی زاده ارائه دادن (custom_view_1)دقیقه 12 ، وقتی من custom که طراحی کردم میندازم داخل لایه main
چیزی نشون نمیده !!! حتی وقتی اجرا میگیرم همینطور!
چرا؟
تشکر از حضورتون

پاسخها 3
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 ");
}
});
}
}
نظرات
متد initaliezr رو در تمام Constructor ها وارد کنید ببینید درست میشه .
رضا نفهمیدم چی میگی ،مبتدیم . !Constructor
تو Constructor اولی متد initaliezr رو وارد نکردی.
علی میشه کدی ویرایش کنی برام بفرستی منظورم از Constructor نمیفهمم مرسی
Constructor یعنی سازنده کلاس و دقیقا همنام کلاسه . وقتی یک شی از یه کلاس میسازی سازنده اون کلاس به طور اتوماتیک فراخوانی میشه و کارش اینه که فیلدهای اون کلاس رو برای اون شی مقدار دهی میکنه . کلاس شما دو Constructor داره ( public Custom() ) که در اولی initaliezr رو ننوشتید .
ویدیوهای استاد رو با دقت ببینید . ببینید متد initaliezr که میسازن ، کجاها کپی میکنن .
به این Constructor که در ابتدای کلاست نوشتی
public Custom(Context context, AttributeSet attrs) {
super(context, attrs);
}
متد initaliezr اضافه کن .
یعنی :
public Custom(Context context, AttributeSet attrs) {
super(context, attrs);
initaliezr(context);
}
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات