Buttionボタンイベントの簡単な操作

1744 ワード

今日、会社では、1つのレイアウトの複数のボタンにクリックイベントを追加することを発見しました.それぞれにsetOnClickListenerが必要です.コードの読み取りが悪くなります.1つのLayoutに同じコントロールが複数ある場合は、次のようにします.
手順:
1、カスタムクラス継承viewを作成する.onClickListener.
    class dialogListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.id_openCamera:
                    Toast.makeText(mContext, "    ", Toast.LENGTH_LONG).show();
                    dialog.dismiss();
                    openCamera();
                    break;
                case R.id.id_openPhtots:
                    dialog.dismiss();
                    openPhotos();
                    break;
                case R.id.id_hide:
                    dialog.dismiss();
                    break;
                default:
                    break;
            }

        }
    }

2、DialogのようなLayoutにリスニングを設定する場合は、レイアウトをinflategする必要があります(オプション).
View viewDialog = View.inflate(mContext, R.layout.bottom_dialog_layout, null);

3、このActivityでfindViewById.
                dialog.setView(viewDialog, 0, 0, 0, 0);
                LinearLayout linearLayout = (LinearLayout) viewDialog.findViewById(R.id.layout_dialog);

4、見つかったコントロールにイベントリスニングを設定します.
                int childCount = linearLayout.getChildCount();
                dialogListener listener = new dialogListener();
                for (int i = 0; i < childCount; i++) {
                    View view = linearLayout.getChildAt(i);
                    if (view instanceof Button) {
                        view.setOnClickListener(listener);
                    }
                }