android - 如何从另一个班级的 timePicker 获取时间?
问题描述
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
解决方案
您正在尝试自己创建活动,这就是为什么没有调用必要的生命周期方法并且您得到NullPointerException
.
如果您想从 TimePickerClass 活动中获取时间,请启动它以获得结果,例如:
Intent intent = new Intent(context, TimePickerClass.class)
startActivityForResult(intent, REQUEST_CODE)
以及 TimePickerClass 活动中的设置结果:
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)
方法。
你可以在这里阅读更多关于它的信息。
推荐阅读
- c# - GridSplitter 与 WindowsFormsHost 的使用。比例尺寸问题 (*)
- couchbase - Couchbase 索引建议
- php - Woocommerce API 作为客户获取产品价格
- javascript - 函数组合 - 多次遍历数组以进行多次操作不是效率低下吗?
- android - 为什么低于 5.0 的 Android 版本不易受到 CVE-2017-13156 的攻击?
- python - 仅使用特定 Csv 列的 KMeans 聚类
- amazon-web-services - 启动 EC2 实例时是否需要同时拥有私有 IP 和私有 DNS。其中一个还不够吗?
- python - 如何在我的脚本所在的目录中使用 python 脚本安装 npm 模块
- c# - 如何从反编译的 WebForms 项目(.aspx 文件)中获取 HTML
- java - 通过 groovy 脚本运行测试步骤时如何解决错误“意外元素:CDATA”?