自定义头部视图

94 阅读1分钟

1.写一个自定义的头部视图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="◁"
android:background="#fff"
/>
<EditText
android:layout_width="230dp"
android:layout_height="wrap_content"
android:id="@+id/ed_name"
android:text="手机"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_qx"
android:text="∷"
android:background="#fff"
/>
</LinearLayout>

2.写一个类加载这个布局
可以传递EdText的值,和一个点击事件

public class HeadView extends LinearLayout {
@BindView(R.id.ed_name)
EditText edName;
@BindView(R.id.btn_qx)
Button btnQh;
public HeadView(Context context) {
super(context);
init(context);
}

public HeadView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}

public HeadView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}

private void init(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.headview,null);
addView(view);

ButterKnife.bind(this);

//获取内容
String name = edName.getText().toString();
//粘性事件
EventBus.getDefault().postSticky(new EventBusBean(name,1));
//点击按钮进行切换
btnQh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (onClick !=null){
onClick.Click();
}
}
});

//传递改变值
edName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String value = String.valueOf(s);
if (!value.equals("")){
EventBusBean bean = new EventBusBean(value,1);
EventBus.getDefault().postSticky(bean);
if (getEdText != null){
getEdText.getName(value);
}
}
}

@Override
public void afterTextChanged(Editable s) {

}
});

}
getEdText getEdText;

public void setGetEdText(getEdText edText){
getEdText = edText;
}

public interface getEdText{
void getName(String name);
}

OnClick onClick;

public void setOnClick(OnClick click){
onClick = click;
}

public interface OnClick{
void Click();
}
}