Я начал работать над приложением. Я создаю меню вчера, но метод onClick не работает! Я создал класс, который расширяет представление и вызывает ее MainMenuObject - этот класс предназначен для любого объекта в главном меню (кнопки, логотипы и т.д.). Я создал для них специальный класс, потому что я запускаю анимацию при запуске меню. После того, как я построил класс MainMenuObject, я построил еще один класс (OpeningTimesView), который расширяет представление и будет иметь в нем все кнопки главного меню и будет функционировать в качестве основного вида деятельности.
Все было хорошо, анимация прошла очень хорошо, и я хотел поместить слушателей на свои кнопки, поэтому я добавил реализацию onClickListener в класс OpenTimesView и переопределил метод onClick. Затем я добавил слушателя к кнопкам с setOnClickListener (this) и setClickable (true), но он не работает! Я пробовал все! Пожалуйста, помогите мне выяснить, что я делаю неправильно. Я добавил тост к методу onClick, который не зависит от какого-либо "if", но он не отображает ни того, ни другого.
(Кстати, есть ли способ определить ширину и высоту экрана как переменную, к которой могут обращаться все классы? она не может быть статичной, потому что вы получаете высоту и ширину от экранного объекта, но должен быть другой способ)
это код:
public class OpeningTimesView extends View implements OnClickListener{
private MainMenuObjectView searchButton;
private MainMenuObjectView supportButton;
private MainMenuObjectView aboutButton;
private int screenWidth;
private int screenHeight;
public OpeningTimesView(Context context, Display dis) {
super(context);
this.screenWidth = dis.getWidth();
this.screenHeight = dis.getHeight();
searchButton = new MainMenuObjectView(context, 200, MovingMode.RIGHT, R.drawable.search, dis);
supportButton = new MainMenuObjectView(context, 400, MovingMode.LEFT, R.drawable.support, dis);
aboutButton = new MainMenuObjectView(context, 600, MovingMode.RIGHT, R.drawable.about, dis);
searchButton.setClickable(true);
supportButton.setClickable(true);
aboutButton.setClickable(true);
searchButton.setOnClickListener(this);
supportButton.setOnClickListener(this);
aboutButton.setOnClickListener(this);
}
@Override
public void onClick(View view){
Toast.makeText(getContext(), "Search button pressed", Toast.LENGTH_SHORT).show();
if(view == searchButton){
Toast.makeText(getContext(), "Search button pressed", Toast.LENGTH_SHORT).show();
}
else if(view == supportButton){
Toast.makeText(getContext(), "Support button pressed", Toast.LENGTH_SHORT).show();
}
else Toast.makeText(getContext(), "About button pressed", Toast.LENGTH_SHORT).show();
}
@Override
public void onDraw(Canvas canvas)
{
// Drawing the buttons
this.searchButton.onDraw(canvas);
this.aboutButton.onDraw(canvas);
this.supportButton.onDraw(canvas);
}
Спасибо, Elad!