直播app源码,Android中自定义日期选择对话框

直播app源码,Android中自定义日期选择对话框

主要代码

 

1
CustomDateDialog.java<br>import android.app.Dialog;<br>import android.content.Context;<br>import android.view.LayoutInflater;<br>import android.view.View;<br>import android.view.ViewGroup;<br>import android.view.Window;<br>import android.widget.DatePicker;<br>import android.widget.LinearLayout;<br>import android.widget.TextView;<br>import java.util.Calendar;<br>/**<br> * @author Yingyong Lao<br> * 创建时间 2021/6/14 16:28<br> * @version 1.0<br> */<br>public class CustomDateDialog implements View.OnClickListener, DatePicker.OnDateChangedListener {<br>    private Dialog dialog;<br>    private TextView titleTv;//标题<br>    private DatePicker datePicker;//日期选择控件<br>    private TextView confirmTv;//底部的“确认”<br>    private View dialogView;<br>    private OnDateSetListener onDateSetListener;<br>    /**<br>     * 构造器<br>     * @param context 上下文<br>     */<br>    public CustomDateDialog(Context context){<br>        dialogView = LayoutInflater.from(context).inflate(R.layout.date_dialog, null);<br>        dialog=new Dialog(context,R.style.CustomDateDialog);<br>        titleTv=dialogView.findViewById(R.id.titleTv);<br>        datePicker=dialogView.findViewById(R.id.datePicker);<br>        ViewGroup viewGroup1= (ViewGroup) datePicker.getChildAt(0);<br>        ViewGroup viewGroup2= (ViewGroup) viewGroup1.getChildAt(0);//获取年月日的下拉列表项<br>        if(viewGroup2.getChildCount()==3){//有的机型没有竖线,只有年、月、日<br>            viewGroup2.getChildAt(2).setVisibility(View.GONE);<br>        }else if(viewGroup2.getChildCount()==5){//有的机型有有竖线<br>            viewGroup2.getChildAt(3).setVisibility(View.GONE);<br>            viewGroup2.getChildAt(4).setVisibility(View.GONE);<br>        }<br>        confirmTv=dialogView.findViewById(R.id.confirmTv);<br>        confirmTv.setOnClickListener(this);<br>    }<br>    /**<br>     * 显示对话框<br>     */<br>    public void show(){<br>        Window window = dialog.getWindow();<br>        window.setContentView(dialogView);//设置对话框窗口的内容视图(这里有个坑,参数不要传R.layout.date_dialog,否则会出现各种问题,比如按钮响应不了点击事件)<br>        window.setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);//设置对话框窗口的布局参数<br>        dialog.show();<br>        dialog.setCancelable(false);<br>    }<br>    /**<br>     * 关闭对话框<br>     */<br>    public void dismiss(){<br>        if(dialog!=null&&dialog.isShowing()){<br>            dialog.dismiss();<br>        }<br>    }<br>    /**<br>     * 设置标题<br>     * @param title 标题<br>     */<br>    public void setTitle(String title){<br>        titleTv.setText(title);<br>    }<br>    public void setDate(int year,int month,OnDateSetListener onDateSetListener){<br>        Calendar calendar = Calendar.getInstance();<br>        datePicker.init(year,month,calendar.get(Calendar.DAY_OF_MONTH),this);<br>        this.onDateSetListener=onDateSetListener;<br>    }<br>    @Override<br>    public void onClick(View v) {<br>        if(v.getId()==R.id.confirmTv){<br>            dialog.dismiss();<br>            if(onDateSetListener!=null){<br>                datePicker.clearFocus();<br>                int year = datePicker.getYear();<br>                int month = datePicker.getMonth();<br>                int day = datePicker.getDayOfMonth();<br>                onDateSetListener.onDateSet(year,month+1);<br>            }<br>        }<br>    }<br>    @Override<br>    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {<br>        datePicker.init(year,monthOfYear,dayOfMonth,this);<br>    }<br>    public interface OnDateSetListener{<br>        void onDateSet(int year,int month);<br>    }<br>}

MainActivity.java

 

1
public class MainActivity extends AppCompatActivity {<br>    private CustomDateDialog dialog;<br>    @Override<br>    protected void onCreate(Bundle savedInstanceState) {<br>        super.onCreate(savedInstanceState);<br>        setContentView(R.layout.activity_main);<br>        findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {<br>            @Override<br>            public void onClick(View v) {<br>                dialog=new CustomDateDialog(MainActivity.this);<br>                Calendar calendar=Calendar.getInstance();<br>                dialog.setDate(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), new CustomDateDialog.OnDateSetListener() {<br>                    @Override<br>                    public void onDateSet(int year, int month) {<br>                        Toast.makeText(MainActivity.this, ""+year+month, Toast.LENGTH_LONG).show();<br>                    }<br>                });<br>                dialog.show();<br>            }<br>        });<br>    }<br>}

 

以上就是直播app源码,Android中自定义日期选择对话框, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-09-23 直播带货平台开发,通过Toolbar实现顶部标题栏的效果
2021-09-23 直播商城源码,商品页面延迟跳转的实现方式
2021-09-23 一对一视频直播系统,实现自定义简单的音频波谱view
点击右上角即可分享
微信分享提示