java - 在android studio中计算两次之间的差异
问题描述
我创建了按钮来显示开始和停止停车的当前时间及其工作。
但是当我点击deductbtn时,手机上的应用程序会弹出并显示“我的应用程序1已停止”
我怎样才能解决这个问题?任何帮助都会非常有用。
@Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_payment_info); firebaseAuth = FirebaseAuth.getInstance(); parkBtn = (Button)findViewById(R.id.parkBtn); stopparkBtn = (Button)findViewById(R.id.stopparkBtn); deductBtn = (Button)findViewById(R.id.deductBtn); timeResult = (TextView)findViewById(R.id.timeResult); timeResult2 = (TextView)findViewById(R.id.timeResult2); diffResult = (TextView)findViewById(R.id.diffResult); parkBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { final Date d = new Date(); SimpleDateFormat sdf1=new SimpleDateFormat("hh:mm a"); final String currentDateTimeString = sdf1.format(d); timeResult.setText(currentDateTimeString); } }); stopparkBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { final Date d1= new Date(); SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm a"); final String currentDateTimeString1 = sdf2.format(d1); timeResult2.setText(currentDateTimeString1); } }); deductBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { float totalTime = Float.parseFloat(timeResult2.getText().toString()); float totalTime1 = Float.parseFloat(timeResult.getText().toString()); final float timeUsage = totalTime - totalTime1; diffResult.setText(String.valueOf(timeUsage)); } }); } }
解决方案
新代码在这里:@Override public void onClick(View view) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm a");
Date date1 = null;
try {
date1 = simpleDateFormat.parse(timeResult.getText().toString());
} catch (ParseException e) {
e.printStackTrace();
}
Date date2 = null;
try {
date2 = simpleDateFormat.parse(timeResult2.getText().toString());
} catch (ParseException e) {
e.printStackTrace();
}
String diffResult= DateUtils.getRelativeTimeSpanString(date1.getTime(), date2.getTime(), DateUtils.FORMAT_SHOW_TIME).toString();
deductBtn.setText(diffResult);
}
推荐阅读
- c# - 将 .txt 文件中的字符串分隔到不同的文本框
- java - Spring Boot 工厂 Bean 创建顺序
- r - 无法使用 rpivotTable 从 ShinyApp 将数据透视表数据导出为 csv / excel
- c# - 浏览器如何从服务器检索 Scorm API
- php - 我怎么得到这些 json 变量?- PHP 注意:试图获取非对象的属性“标题”
- java - Exoplayer 可以在不下载完整文件的情况下流式传输 mp3 吗?
- excel-formula - Excel - 需要在列表单元格中搜索数组中的子字符串,无法使索引/匹配工作?
- composer-php - 如何通过 composer-patches 更新 composer.lock 以包含特定补丁?
- firebase - 如何在flutter中访问firestore的某些字段?
- html - CSS3 内联块 div 在页面顶部有白色