💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی باقری
یه زوش دیگه برای event handler
جامعه جاوا (اندروید) ایجاد شده در ۱۵ بهمن ۱۳۹۸

ابتدا بعد از تعریف کلاس اکتیویتی ویو‌های مورد استفاده خودمون رو میاییم و تعریف می‌کنیم من اینجا دو تا ویوی مورد نظر خودم رو تعریف کردم


    public Button editProfile;
    public Button saveInformation;

سپس در متد onCreate به صورت زیر عمل میکنیم


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setupViews();
    }

 

همون طور که میبینید برای هندل کردن ویو‌ها متدی به اسم setupViews رو تعریف کردم که قراره توی اون بلاک من آیدی برای ویو‌های خودم تعیین کنم


    public void setupViews() {
        editProfile = findViewById(R.id.btn_main_editProfile);
        editProfile.setOnClickListener(this);
        saveInformation = findViewById(R.id.btn_main_save_information);
        saveInformation.setOnClickListener(this);
    }

 

نکته ای که داره اینه که بجای اینکه onClickListener رو همون جا تعریف کنم پارامتر this رو بهش پاس دادم که خود کلاس این ویو رو هندل کنه که لازمه اش اینه که ما بیاییم تو ابتدای تعریف کلاس و کلاس View.OnClickListener رو implement کنیم که بعد از این کار اندروید استدیو از ما میخواد که متد onClick رو Override کنیم ، که من به صورت زیر انجام دادم

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_main_editProfile :
            editProfileHandler();
    }
}

این متد یک پارامتر از جنس View میگیره و این ویو میتونه هر ویویی باشه که ما توی پروژه استفاده کردیم ، فقط باید از بلاک swich/case استفاده کنیم تا مشخص کنیم برای کدوم ویو میخواییم یه عملکردی تعیین کنیم که من در اینجا فقط برای ویو editProfile این کار رو انجام دادم.

// handler for edit profile button
private void editProfileHandler() {
    Toast.makeText(this, "editProfile", Toast.LENGTH_SHORT).show();
}

خب تموم شد (:

ولی خب راه‌های زیادی من دیدم که میتونید از اینجا مشاهده کنید

ممنون علی جالب بود منم  بعضی وقتا از attr خوده btn‌ها به اسم onClick استفاده میکنم 

مهرداد ۱۵ بهمن ۱۳۹۸، ۱۸:۴۷