android 自定义alert

2019-03-06  本文已影响0人  风___________

.java


import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import com.example.jing.maya_android.R;
import com.example.jing.maya_android.helper.KapNextButttonIsEnableHelper;
import com.example.jing.maya_android.helper.StringDetectionHelper;
import com.example.jing.maya_android.view.KapCustomNextButton;

import java.util.ArrayList;

import butterknife.BindView;
import butterknife.ButterKnife;

public class KapCreateNameAlert extends Dialog{
    /** view */
    @BindView(R.id.prompt_textview)
    private TextView promptTextView;
    @BindView(R.id.prompt_sub_textview)
    private TextView promptSubTextView;
    @BindView(R.id.edittext)
    private EditText editText;
    @BindView(R.id.cancle_buttom)
    private KapCustomNextButton cancleButton;
    @BindView(R.id.okay_button)
    private KapCustomNextButton okayButton;

    /** 接口和回调 */
    public interface KapCreateNameOkayListener{
        public void onClick(String contentString);
    }
    private KapCreateNameOkayListener okayListener = null;
    /** 构造函数 */
    public KapCreateNameAlert(@NonNull Context context) {
        super(context, R.style.KapCreateNameAlert);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alert_createdname_view);
        ButterKnife.bind(this);
        // 监听按钮
        KapNextButttonIsEnableHelper.NextButtonEnableChange(okayButton, new ArrayList<EditText>() {{
            add(editText);
        }}, new KapNextButttonIsEnableHelper.KapButtonStatusChangeInterface() {
            @Override
            public boolean isCanEble() {
                return !StringDetectionHelper.isBlackString(editText.getText().toString());
            }
        });
        // 点击事件
        okayButton.getButton().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (okayListener != null) okayListener.onClick(editText.getText().toString());
            }
        });
        cancleButton.getButton().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hide();
            }
        });
    }
    /** 辅助方法 */
    public void chengeShowTitle(String prompt,String promptSub){
        promptTextView.setText(prompt);
        promptSubTextView.setText(promptSub);
    }
    public void cleanContent(){
        editText.setText("");
    }

    /** set */
    public void setOkayListener(KapCreateNameOkayListener okayListener) {
        this.okayListener = okayListener;
    }
}

style

<!--自定义 dialog-->
    <style name="KapCreateNameAlert" parent="android:style/Theme.Dialog">
        <!--背景颜色及和透明程度-->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!--是否去除标题 -->
        <item name="android:windowNoTitle">true</item>
        <!--是否去除边框-->
        <item name="android:windowFrame">@null</item>
        <!--是否浮现在activity之上-->
        <item name="android:windowIsFloating">true</item>
        <!--是否模糊-->
        <item name="android:backgroundDimEnabled">false</item>
    </style>

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:id="@+id/prompt_backview"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp">
        <TextView
            android:id="@+id/prompt_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="14dp"
            android:textColor="@color/BANK_GRAY_cacaca"
            android:text="书籍名称"/>
        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>
        <TextView
            android:id="@+id/prompt_sub_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="@color/Bank_Red_dc1f1f"
            android:textSize="10dp"
            android:text="书籍名称将不可修改"/>
    </LinearLayout>
    <EditText
        android:id="@+id/edittext"
        android:layout_width="match_parent"
        android:layout_height="66dp"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:background="@drawable/custom_oval_gray"
        android:gravity="left|top"
        android:inputType="text|textCapSentences"
        android:imeOptions="actionSend"
        android:singleLine="true"
        android:textSize="12sp"/>
    <LinearLayout
        android:id="@+id/button_backview"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal">
        <com.example.jing.maya_android.view.KapCustomNextButton
            android:id="@+id/cancle_buttom"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"

            app:custom_nextbutton_title_normal="@string/alert_cancle"
            app:custom_nextbutton_titlecolor_normal="@color/Bank_Black_313131"
            app:custom_nextbutton_backcolor_normal="@color/Bank_White_ffffff" />

        <View
            android:layout_width="30dp"
            android:layout_height="wrap_content"/>

        <com.example.jing.maya_android.view.KapCustomNextButton
            android:id="@+id/okay_button"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"

            app:custom_nextbutton_title_normal="@string/alert_ok"
            app:custom_nextbutton_titlecolor_normal="@color/Bank_White_ffffff"
            app:custom_nextbutton_backcolor_normal="@color/Bank_Black_313131"

            app:custom_nextbutton_title_unenable="@string/next"
            app:custom_nextbutton_titlecolor_unenable="@color/Bank_White_ffffff"
            app:custom_nextbutton_backcolor_unenable="@color/BANK_GRAY_d2d2d2" />

    </LinearLayout>
</LinearLayout>
上一篇 下一篇

猜你喜欢

热点阅读