android kotlin 自定义dialog

代码如下 :






class ClearCacheDialog {
    private var context: Context? = null
    private var dialog: Dialog? = null
    private var btn_cancel: Button? = null
    private  var txt_updata_message:TextView? = null
    private var btn_update: Button? = null

    /**
     * init the dialog
     *
     * @return
     */
    fun MyVersionDialog(activity: Activity) {
        context = activity
        dialog = Dialog(context!!, R.style.mydialog_style)
        dialog!!.setContentView(R.layout.clear_cache_dialog)
        //设置dialog以外的不能点击
        dialog!!.setCancelable(false)
        txt_updata_message = dialog!!.findViewById<View>(R.id.txt_updata_message) as TextView
        btn_update = dialog!!.findViewById<View>(R.id.btn_update) as Button
        btn_cancel = dialog!!.findViewById<View>(R.id.btn_cancel) as Button
        btn_cancel!!.setOnClickListener {
            //取消
         clearCache?.cancel()
            dismiss()

        }
        btn_update!!.setOnClickListener {
            //清除缓存
           clearCache?.clearCache()
                dismiss()
        }

    }

    var clearCache: ClearCacheOnClickCallBack?=null
    fun setClearCacheOnClickCallBack(clearCacheOnClickCallBack: ClearCacheOnClickCallBack) {
        this.clearCache = clearCacheOnClickCallBack
    }


    /**
     * Get the Text of the EditText
     */
    fun getText(): String? {
        //return editText.getText().toString();
        return null
    }

    public fun show() {
        dialog?.show()
    }

    fun hide() {
        dialog?.hide()
    }

    fun dismiss() {
        dialog?.dismiss()
    }

}
clear_cache_dialog.xml代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="250dp"
    android:layout_height="180dp"
    android:fitsSystemWindows="true"
    android:background="@drawable/persons_material_gb"
    android:orientation="vertical">
    

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="清除缓存"
        android:layout_marginTop="10dp"
        android:textColor="@color/black"
        android:textSize="20dip" />

    <TextView
        android:id="@+id/txt_updata_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="25dp"
        android:layout_marginBottom="10dp"
        android:text="是否删除app缓存信息?" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="25dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_alignParentBottom="true"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:layout_gravity="center">

            <Button
                android:id="@+id/btn_cancel"
                android:layout_width="75dp"
                android:layout_height="35dp"
                android:layout_alignParentBottom="true"
                android:layout_toLeftOf="@+id/btn_update"
                android:background="@drawable/update_cancelbtn_bg"
                android:text="取消"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:textColor="#999999" />
            <Button
                android:id="@+id/btn_update"
                android:layout_width="75dp"
                android:layout_height="35dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="19dp"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:background="@drawable/rounded_button"
                android:text="确定"
                android:textColor="@color/white" />
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>

styles.xml代码如下

<style name="mydialog_style" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:background">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:backgroundDimAmount">0.6</item>
</style>
ClearCacheOnClickCallBack接口如下


interface ClearCacheOnClickCallBack {
    fun clearCache()
    fun cancel()
}

activity代码如下

 var clear:ClearCacheDialog=ClearCacheDialog()
        clear.MyVersionDialog(this)
        clear .setClearCacheOnClickCallBack(this)

        clearCache.setOnClickListener{
            clear.show()

        }

 实现接口两个方法

class SettingAct: BaseActivity(), ClearCacheOnClickCallBack {
override fun clearCache() {
    //清除缓存
    Toast.makeText(activity,"清除成功",Toast.LENGTH_SHORT).show()
}

override fun cancel() {
    //退出
    Toast.makeText(activity,"取消",Toast.LENGTH_SHORT).show()
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值