我正在尝试设置一个OnTimeChangedListener来设置位于我的Fragment中的TextView的值(我有一个带有三个选项卡的操作栏),我在我的MainActivity中设置了OnTimeChangedListener,如下所示:
private OnTimeChangedListener OnTimeChangedListener = new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
time.setText(getSelectedTime(view));
}
};
这是方法getSelectedTime();
public String getSelectedTime(TimePicker t) {
String time = t.getCurrentHour() + " : " + t.getCurrentMinute();
return time;
}
就像我说的那样,TimePicker位于一个Alert中,当按下按钮时,会在与TextView相同的片段中弹出警告,这里是代码:
public void showTimePicker(Button but) {
final Dialog dialog = new Dialog(this);
final TimePicker t;
dialog.setContentView(R.layout.alert_time);
dialog.setTitle("Heure");
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
t = (TimePicker) findViewById(R.id.time_cri);
/* findViewById() return NULL here !! */
t.setOnTimeChangedListener(OnTimeChangedListener);
dialog.show();
}
此时我有一个nullPointerException(上面方法中的findViewById())。我尝试了不同的方法让这个工作,但我一无所获!如果有人知道这个问题的解决方案,这将是我的一天!!! 感谢您阅读本文!