: 여기
public class ActionBar extends LinearLayout {
private boolean showBackButton;
private boolean showXButton;
private boolean showHeader;
private String header = "";
private OnClickListener onBackButtonClickListener;
private OnClickListener onXButtonClickListener;
@Bind(R.id.back) ImageView backButton;
@Bind(R.id.header) AutoResizeTextView headerText;
@Bind(R.id.x_btn) ImageView xButton;
public ActionBar(Context context) {
super(context);
initialize(context, null);
}
public ActionBar(Context context, AttributeSet attrs) {
super(context, attrs);
initialize(context, attrs);
}
public ActionBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context, attrs);
}
public ActionBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initialize(context, attrs);
}
private void initialize(Context context, AttributeSet attributeSet) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.action_bar_layout, this);
ButterKnife.bind(this, view);
if(attributeSet != null) {
TypedArray typedArray =
context.getTheme().obtainStyledAttributes(attributeSet, R.styleable.ActionBar, 0, 0);
try {
setHeader(typedArray.getString(R.styleable.ActionBar_header) == null ?
"" : typedArray.getString(R.styleable.ActionBar_header));
setShowBackButton(typedArray.getBoolean(R.styleable.ActionBar_show_back_button, false));
setShowXButton(typedArray.getBoolean(R.styleable.ActionBar_show_x_button, false));
setShowHeader(typedArray.getBoolean(R.styleable.ActionBar_show_header, false));
} finally {
typedArray.recycle();
}
}
}
public boolean isShowBackButton() {
return showBackButton;
}
public void setShowBackButton(boolean showBackButton) {
this.showBackButton = showBackButton;
invalidate();
requestLayout();
}
public boolean isShowXButton() {
return showXButton;
}
public void setShowXButton(boolean showXButton) {
this.showXButton = showXButton;
invalidate();
requestLayout();
}
public boolean isShowHeader() {
return showHeader;
}
public void setShowHeader(boolean showHeader) {
this.showHeader = showHeader;
invalidate();
requestLayout();
}
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header = header;
invalidate();
requestLayout();
}
public OnClickListener getOnBackButtonClickListener() {
return onBackButtonClickListener;
}
public void setOnBackButtonClickListener(OnClickListener onBackButtonClickListener) {
this.onBackButtonClickListener = onBackButtonClickListener;
}
public OnClickListener getOnXButtonClickListener() {
return onXButtonClickListener;
}
public void setOnXButtonClickListener(OnClickListener onXButtonClickListener) {
this.onXButtonClickListener = onXButtonClickListener;
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
backButton.setVisibility(showBackButton ? VISIBLE : INVISIBLE);
xButton.setVisibility(showXButton ? VISIBLE : INVISIBLE);
headerText.setVisibility(showHeader ? VISIBLE : INVISIBLE);
headerText.setText(header);
}
@OnClick(R.id.x_btn) void onXButtonClick(View v) {
if(getOnBackButtonClickListener() != null) {
getOnBackButtonClickListener().onClick(v);
}
}
@OnClick(R.id.back) void onBackButtonClick(View v) {
if(getOnXButtonClickListener() != null) {
getOnXButtonClickListener().onClick(v);
}
}
}
내 조각 및 방법의 setOnBackButtonClickListener 호출입니다 : 여기
내 사용자 정의 클래스입니다 다음과 같아야합니다 :
@OnClick(R.id.back) void onXButtonClick(View v) {
if(getOnBackButtonClickListener() != null) {
getOnBackButtonClickListener().onClick(v);
}
}
@OnClick(R.id.x_btn) void onBackButtonClick(View v) {
if(getOnXButtonClickListener() != null) {
getOnXButtonClickListener().onClick(v);
}
}
코드 끝에서 청취자를 전환하지 않았습니다. X를 누르면 onBackListener가 호출되고 Back을 클릭하면 Xlistener가 호출됩니다. – X3Btel
무슨 뜻입니까? 온 클릭 '@OnClick (R.id.x_btn) 무효 onXButtonClick (보기 V) { 경우 (getOnBackButtonClickListener() = 널!) { getOnBackButtonClickListener() :. @ X3Btel는 – Adnan
그는 당신이 당신의 청취자 교환이 코드의 의미 (V); } } @OnClick (R.id.back) 무효 onBackButtonClick (보기 V) { 경우 (getOnXButtonClickListener() = 널!) { getOnXButtonClickListener() 온 클릭 (V).; }' –