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();
}
}