【问题标题】:How can i change date picker done background and selector background in android?如何在 android 中更改日期选择器完成背景和选择器背景?
【发布时间】:2014-01-06 02:06:41
【问题描述】:

在 android 日期选择器中,我需要更改完成按钮背景。

代码:

 private void showDateDialog() 
{
    Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int monthOfYear = c.get(Calendar.MONTH) + 1;
    int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);

    String currentdate = year+"";
    if(monthOfYear<10)
        currentdate += "0";
    currentdate += (monthOfYear);
    if(dayOfMonth<10)
        currentdate += "0";             
    currentdate += dayOfMonth;

    currentDate = Integer.parseInt(currentdate);

    DatePickerDialog datePickerDialog = new DatePickerDialog(SelectEvent.this, new OnDateSetListener() 
    {
        @Override
        public void onDateSet(DatePicker view, int _year, int _monthOfYear,
                int _dayOfMonth) 
        {
            String date = _year+"";
            if(_monthOfYear+1<10)
                date += "0";
            date += (_monthOfYear+1);
            if(_dayOfMonth<10)
                date += "0";                
            date += _dayOfMonth;

            selectedDate = Integer.parseInt(date);
            DOB = date;

            if(selectedDate >= currentDate)
                eventdate.setText(_dayOfMonth+"/"+(_monthOfYear+1)+"/"+_year);
            else
            {
                eventdate.setText("");
                showDialog("Please Select Event Date");
                //Toast.makeText(context, "Please Select Event Date", Toast.LENGTH_SHORT).show();
            }
        }
    }, year, monthOfYear-1, dayOfMonth);

    datePickerDialog.setButton(DatePickerDialog.BUTTON_POSITIVE, "DONE", datePickerDialog);
    datePickerDialog.show();
}

如果我使用此代码,我只会得到默认的日期选择器,并且只需将“完成”更改为“完成”。 但我希望那个日期选择器是https://drive.google.com/file/d/0B2NGqFM-F0bNWGl2VG93OUJpaWM/edit?usp=sharing

请给出一些想法和建议,我该如何在 android 中更改颜色。在这个网站我搜索过,但我没有得到。

谢谢&问候 尚卡尔

【问题讨论】:

    标签: android android-layout background datepicker datepickerdialog


    【解决方案1】:

    试试下面的代码。它从对话框中获取按钮并在其上设置自定义可绘制背景。

    Button b = datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE);
    if(b != null) {
        b.setBackgroundDrawable(getResources().getDrawable(R.drawable.your_custom_background_here));
    }
    

    【讨论】:

    • 嘿,这不适用,如果我删除了 if 条件,我得到空指针异常。如果我写了,我没有得到任何改变。
    • 你是不是在datePickerDialog.setButton(...)这一行后面加了这段代码
    • 是的。我在设置后添加,但我没有得到任何更改。如果我删除了 if 条件,我会得到空指针异常。
    • 我认为按钮没有得到。这样就为空了
    • 尝试将 DialogInterface.BUTTON_POSITIVE 更改为 DatePickerDialog.BUTTON_POSITIVE
    【解决方案2】:
    datePickerDialog.show();
        datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setBackgroundDrawable(getResources().getDrawable(R.drawable.browse_background));
        datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setTextSize(30);
        datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setTypeface(typeface);
        datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.white));
        datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setText("DONE");
    

    使用这个工作正常。

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 2020-02-28
      • 1970-01-01
      • 2022-06-28
      • 1970-01-01
      相关资源
      最近更新 更多