public class MyTitleView extends LinearLayout implements View.OnClickListener {
public MyTitleView(Context context) {
super (context);
}
public MyTitleView(Context context, @Nullable AttributeSet attrs) {
super (context, attrs);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyTiltleView );
String title_text = array.getString(R.styleable.MyTiltleView_title_text );
String btn_left = array.getString(R.styleable.MyTiltleView_btn_left_text );
String btn_right = array.getString(R.styleable.MyTiltleView_btn_right_text );
View view = inflate (context, R.layout.title_layout , this );
//获取id
Button left_btn = view.findViewById(R.id.btn_left );
Button right_btn= view.findViewById(R.id.btn_right );
TextView text_title=view.findViewById(R.id.title_tet );
left_btn.setOnClickListener(this );
right_btn.setOnClickListener(this );
text_title.setOnClickListener(this );
}
//点击事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_left :
if (onBtnOnClick !=null ){
onBtnOnClick .onLeftClick();
}
break ;
case R.id.btn_right :
if (onBtnOnClick !=null ){
onBtnOnClick .onRIghtClick();
}
break ;
case R.id.title_tet :
if (onBtnOnClick !=null ){
onBtnOnClick .getText();
}
break ;
}
}
//接口回调
public interface onBtnOnClick{
void onLeftClick();
void onRIghtClick();
void getText();
}
//设置外部访问的方法
private onBtnOnClick onBtnOnClick ;
public void onBtnOnClick(MyTitleView.onBtnOnClick onBtnOnClick){
this .onBtnOnClick =onBtnOnClick;
}
}
//布局
<? xml version= "1.0" encoding= "utf-8" ?>
<resources >
<declare-styleable name= "MyTiltleView" >
<attr name= "title_text" format= "string" ></attr >
<attr name= "btn_left_text" format= "string" ></attr >
<attr name= "btn_right_text" format= "string" ></attr >
</declare-styleable >
</resources >
//布局
<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :orientation= "horizontal"
>
<Button
android :id= "@+id/btn_left"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "-"
android :layout_marginLeft= "20dp"
/>
<TextView
android :id= "@+id/title_tet"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "清空"
android :layout_marginLeft= "20dp"
android :gravity= "center"
/>
<Button
android :id= "@+id/btn_right"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "+"
android :layout_marginLeft= "20dp"
/>
</LinearLayout >