ابتدا بعد از تعریف کلاس اکتیویتی ویوهای مورد استفاده خودمون رو میاییم و تعریف میکنیم من اینجا دو تا ویوی مورد نظر خودم رو تعریف کردم
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(); }
خب تموم شد (:
ولی خب راههای زیادی من دیدم که میتونید از اینجا مشاهده کنید