直播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中自定义日期选择对话框, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-09-23 直播带货平台开发,通过Toolbar实现顶部标题栏的效果
2021-09-23 直播商城源码,商品页面延迟跳转的实现方式
2021-09-23 一对一视频直播系统,实现自定义简单的音频波谱view