代码DatePickerDialog中的错误

时间:2015-10-30 09:52:30

标签: android

我想我只是一个小错误,但我找不到。在以下代码中,我的整个@Override方法标记为" false"。



        inputBill.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                final Calendar calendar = Calendar.getInstance();
                mDay = calendar.get(Calendar.DAY_OF_MONTH);
                mMonth = calendar.get(Calendar.MONTH);
                mYear = calendar.get(Calendar.YEAR);

                DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        inputBill.setText(dayOfMonth + "." + monthOfYear + "." + year);
                    }
                }, mYear, mMonth, mDay);
            dpd.show();
            }
        });




3 个答案:

答案 0 :(得分:2)

您无法使用View.OnFocusChangeListener的实例来显示对话框。对于警报,您始终需要活动上下文,因此您需要在那里使用当前活动实例。

问题是

DatePickerDialog dpd = new DatePickerDialog(**this**, new DatePickerDialog.OnDateSetListener() {

使用

DatePickerDialog dpd = new DatePickerDialog(ACTIVITY_NAME.this, new DatePickerDialog.OnDateSetListener() {

答案 1 :(得分:1)

被修改

您可以使用 getContext()

error: function() {
    $('#extra').html('Please enter valid UPC code.');
    $("input").removeAttr('disabled');
}

答案 2 :(得分:1)

作为@Pankaj Kumar回答的旁注:

每当您实例化一个匿名类时,该类this内部引用的是实例化类而不是您的主类。

public class MainClass{
    public method(){
        new AnotherClass(){
            public someMethod(){
                Object o1 = this;
                Object o2 = MainClass.this;
            }
        }
    }
}

在这个例子中:

  • o1:指向AnotherClass的当前实例。

  • o2:指向MainClass的当前实例。