自定义Button类
public class EditTextButtonextends androidx.appcompat.widget.AppCompatButton {
//继承Button实现的3个构造方法
public EditTextButton(Context context) {
super(context);
}
public EditTextButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EditTextButton(Context context, AttributeSet attrs,int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void bindEditText(EditText editText) {
/*只要条件满足就设置启用*/
setEnabled(editText.getText().toString().length() >0);
/*添加文本更改监听器*/
editText.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) {
/*文本在改变*/
}
@Override
public void afterTextChanged(Editable s) {
/*文本之后改变了*/
/*设置启用*/
setEnabled(editText.getText().toString().length() >0);
}
});
}
}
<!--设置点击登录的样式-->
<style name="Jiandao" parent="AppTheme"/>
<style name="Jiandao.Button_style1">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/ic_button_style1_background_selector</item>
<item name="android:textColor">@color/white</item>
让我们设置登录把
<com.m.k.seetaoism.widgets.EditTextButton
android:id="@+id/auth_password_login_btn_login"
style="@style/Jiandao.Button_style1"
android:layout_marginTop="50dp"
android:text="@string/text_login"
app:layout_constraintEnd_toEndOf="@+id/auth_password_login_edt_password"
app:layout_constraintStart_toStartOf="@+id/auth_password_login_edt_password"
app:layout_constraintTop_toBottomOf="@+id/imageView3" />
选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--刚启用的状态-->
<item android:state_enabled="false">
<!--形状“长方形”-->
<shape android:shape="rectangle">
<!--设置他的角度=半径是+-->
<corners android:radius="22dp" />
<!--实线的颜色-->
<solid android:color="@color/gray_3" />
</shape>
</item>
<!--按下去的状态的状态-->
<item android:state_pressed="true">
<!--形状“长方形”-->
<shape android:shape="rectangle">
<!--设置他的角度=半径是+-->
<corners android:radius="22dp" />
<!--实线的颜色-->
<solid android:color="@color/gray_3" />
</shape>
</item>
<item>
<!--当某种条件触发的状态-->
<shape android:shape="rectangle">
<corners android:radius="22dp" />
<solid android:color="@android:color/black" />
</shape>
</item>
</selector>
介绍:这个那就是设置了button的三种状态:点击,未点击,不让点击