アプリの開発を開始しました。昨日メニューを作成しましたが、onClick メソッドが機能しません。View を拡張して彼女の MainMenuObject と呼ばれるクラスを作成しました。このクラスは、メイン メニューの任意のオブジェクト (ボタン、ロゴなど) 用です。メニューの開始時にアニメーションを実行しているため、特別なクラスを作成しました。MainMenuObject クラスを構築した後、View を拡張する別のクラス (OpeningTimesView) を構築しました。このクラスにはメイン メニューのすべてのボタンが含まれ、メイン アクティビティのレイアウトとして機能します。
すべてがうまくいき、アニメーションは非常にうまくいき、ボタンにリスナーを配置したかったので、onClickListener の実装を OpeningTimesView クラスに追加し、onClick メソッドをオーバーライドしました。次に、setOnClickListener(this) と setClickable(true) を使用してリスナーをボタンに追加しましたが、機能しません。私はすべてを試しました!私が間違っていることを理解するのを手伝ってください。「if」に依存しないonClickメソッドにトーストを追加しましたが、どちらも表示されません。
(ところで、すべてのクラスがアクセスできる変数として画面の幅と高さを定義する方法はありますか?表示オブジェクトから高さと幅を取得するため、静的にすることはできませんが、別の方法が必要です)
これはコードです:
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);
}
前もってありがとう、エラド!