android 修改DatePickerDialog只顯示“年月”,去掉“日”顯示
阿新 • • 發佈:2019-01-24
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){ //查詢DatePicker DatePicker dp = findDatePicker((ViewGroup) getWindow().getDecorView()); //獲取其子控制元件,包含 年、月、日 ViewGroup view0 = (ViewGroup)((ViewGroup) dp.getChildAt(0)).getChildAt(0); ViewGroup view1 = (ViewGroup)((ViewGroup) dp.getChildAt(0)).getChildAt(1); ViewGroup view2 = (ViewGroup)((ViewGroup) dp.getChildAt(0)).getChildAt(2); //獲取子控制元件中的EditText顯示控制元件(就是中間顯示年月日的) EditText et0 = (EditText)view0.getChildAt(1); EditText et1 = (EditText)view1.getChildAt(1); EditText et2 = (EditText)view2.getChildAt(1); //獲取當前日 int dayOfMonth = dp.getDayOfMonth(); //獲取三個顯示控制元件的值 String str0 = et0.getText().toString().trim(); String str1 = et1.getText().toString().trim(); String str2 = et2.getText().toString().trim(); //進行匹配,如果和當前日的值相同,則隱藏它 ( BUG:若初始化值為5月5號,可能會出錯) //一般情況下 年-月-日 或者 月-日-年情況比較常見,所以先比較str[2]->str[1]->str[0],降低出錯概率 if((""+dayOfMonth).equals(str2)){ view0.setVisibility(View.GONE); }else if((""+dayOfMonth).equals(str1)){ view1.setVisibility(View.GONE); }else if((""+dayOfMonth).equals(str0)){ view2.setVisibility(View.GONE); } }