我有一些问题。我是一个初学者程序员。我需要创建一个应用程序,就像一个时钟与Android工作室,需要增加和减少小时和分钟。当我按下+1H将需要增加1H采取相同的+1M和-1M,我不能协调我怎么能做到这一点。我这样做,当时钟再次达到23:59,它是00:00,如此循环
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button button,button2,button3,button4;
private TextView textView;
int hour = 0;
int minute = 0;
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
button4 = findViewById(R.id.button4);
textView = findViewById(R.id.res);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (hour >= 9) {
textView.setText((++hour + "") + ":" + "00");
} else {
textView.setText("0" + (++hour + "") + ":" + "00");
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(hour>=9) {
textView.setText((--hour + "") + ":" + "00");
}else{
textView.setText("0"+(--hour + "") + ":" + "00");
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(minute>=9) {
textView.setText("00" + ":" + (++minute + ""));
}else{
textView.setText("00" + ":" + "0"+(++minute + ""));
}
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(minute>=9) {
textView.setText("00" + ":" + (--minute + ""));
}else{
textView.setText("00" + ":" + "0"+(--minute + ""));
}
}
});
}
}
4条答案
按热度按时间okxuctiv1#
java.时间和三个TenABP
所有这些功能都已经存在了。使用java.time中的
LocalTime
,java. time是现代Java日期和时间API。下面是一个简短的演示,输出在注解中给出:问题:我可以在Android上使用java.time吗?
是的,java.time在新旧Android设备上都能很好地工作。它只需要至少Java 6。
org.threeten.bp
导入带有子包的日期和时间类。链接
java.time
到Java 6和7的后向移植(对于JSR-310,为ThreeTen)。osh3o9ms2#
使用
Calendar#add
来完成这个任务。令人困惑的是,你可以用它来做加法和减法。当涉及到打印时间时,API版本〈24的默认选项是使用
DateFormat
。因此,不要试图自己确定它:但是,请注意
SimpleDateFormat
存在一些问题,特别是在多线程方面。正如Ole V.V.在评论中建议的那样,您应该考虑使用ThreeTenABP
库。如果您的目标是API 24+,则可以在
java.time
包中利用Java 8的附加功能,如Instant
和DateTimeFormatter
ddrv8njm3#
可能这个代码将帮助您获得时间,并让它正确地增加或减少。
wfauudbj4#
若要以Kotlin语言在目前时间加上或减去30分钟: