我想我只是一个小错误,但我找不到。在以下代码中,我的整个@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();
}
});

答案 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
的当前实例。