Buttionボタンイベントの簡単な操作
1744 ワード
今日、会社では、1つのレイアウトの複数のボタンにクリックイベントを追加することを発見しました.それぞれにsetOnClickListenerが必要です.コードの読み取りが悪くなります.1つのLayoutに同じコントロールが複数ある場合は、次のようにします.
手順:
1、カスタムクラス継承viewを作成する.onClickListener.
2、DialogのようなLayoutにリスニングを設定する場合は、レイアウトをinflategする必要があります(オプション).
3、このActivityでfindViewById.
4、見つかったコントロールにイベントリスニングを設定します.
手順:
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);
}
}