public class TimePickerClass extends Activity{
public TimePicker mTimePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_picker_class);
Button saveTimeButton;
mTimePicker = (TimePicker) findViewById(R.id.timePicker);
mTimePicker.setIs24HourView(true);
saveTimeButton = (Button) findViewById(R.id.next_button);
saveTimeButton.setOnClickListener(v -> {
getTime();
});
public String getTime(){
//TODO
int hour;
int minute;
hour = mTimePicker.getHour();
minute = mTimePicker.getMinute();
String message;
message = "Time:" + hour +" : " + minute;
return message;
}你好!我有一个类,在这个类中,我使用TimePicker获取用户选择的时间。我正在尝试这样做:
TimePickerClass time = new TimePickerClass();
String userTime = time.getTime();但这不起作用,应用程序已关闭。那么,如何实现这一点呢?错误如下:
FATAL EXCEPTION: main
Process: com.gfc.glanceclock, PID: 32256
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.TimePicker.getHour()' on a null object reference发布于 2018-08-21 14:02:06
您正在尝试自己创建活动,这就是为什么没有调用必要的生命周期方法,您会得到NullPointerException。
如果您想从您的TimePickerClass活动中获取时间,请启动它以获取结果,例如:
Intent intent = new Intent(context, TimePickerClass.class)
startActivityForResult(intent, REQUEST_CODE)以及TimePickerClass活动中的set结果:
mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Intent intent = new Intent();
intent.putExtra("time", time.getTime());
setResult(RESULT_OK, intent);
finish();
}
});然后,您可以在
protected void onActivityResult(int requestCode, int resultCode, Intent data)方法。
你可以阅读更多关于它的here。
https://stackoverflow.com/questions/51942293
复制相似问题