Java 根据TextClock Android中的时间更改TextView
当Java 根据TextClock Android中的时间更改TextView,java,android,android-studio,time,Java,Android,Android Studio,Time,当TextClock上的时间等于11:59 PM 我试着做一些类似的事情 if(数字时钟等于(“11:49 PM”)){ tvOne.setText(“文本更改”); } 但是TextView没有改变,所以我尝试在我的TextClock上使用OnFocusChangeListener digitalClock.setOnFocusChangeListener(新视图.OnFocusChangeListener(){ @凌驾 public void onFocusChange(视图v,布尔has
TextClock
上的时间等于11:59 PM
我试着做一些类似的事情
if(数字时钟等于(“11:49 PM”)){
tvOne.setText(“文本更改”);
}
但是
TextView
没有改变,所以我尝试在我的TextClock
上使用OnFocusChangeListener
digitalClock.setOnFocusChangeListener(新视图.OnFocusChangeListener(){
@凌驾
public void onFocusChange(视图v,布尔hasFocus){
系统输出打印LN(数字时钟);
如果(数字时钟等于(“晚上11:59”)){
tvOne.setText(“文本更改”);
}
}
});
但我不确定我是否做对了。根据文档,TextClock扩展了TextView:
public class TextClock
extends TextView
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.TextClock
使用textClock.getText().toString().equals(someString)
从您的textClock获取文本,并与所需的字符串进行比较。并实现TextChangedListener以监视textClock中的更改:
binding.textClock.addTextChangedListener (new TextWatcher () {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (binding.textClock.getText ().toString().equals ("20:43 PM")){
binding.textView3.setText (binding.textClock.getText ().toString());
}
}
});
这应该行得通
绑定是一项功能,要根据文档绑定数据和视图,TextClock扩展了TextView:
public class TextClock
extends TextView
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.TextClock
使用textClock.getText().toString().equals(someString)
从您的textClock获取文本,并与所需的字符串进行比较。并实现TextChangedListener以监视textClock中的更改:
binding.textClock.addTextChangedListener (new TextWatcher () {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (binding.textClock.getText ().toString().equals ("20:43 PM")){
binding.textView3.setText (binding.textClock.getText ().toString());
}
}
});
这应该行得通
绑定是一项功能,要绑定数据和视图,请使用报警管理器执行此任务 在onCreate方法中
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 23:49 PM
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 49);
// setRepeating() lets you specify a precise custom interval--in this case,
// 1 day
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
if (day == 1) {
//today = "Sunday";
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
}
创建一个接收方类
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
tvOne.setText("Text changed");
}
}
添加权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>
使用报警管理器执行此任务 在onCreate方法中
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 23:49 PM
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 49);
// setRepeating() lets you specify a precise custom interval--in this case,
// 1 day
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
if (day == 1) {
//today = "Sunday";
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
}
创建一个接收方类
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
tvOne.setText("Text changed");
}
}
添加权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>
数字时钟的类型是什么?我怀疑它不是一个字符串,如果我是正确的,它永远不可能等于一个字符串。请给我一个。文本时钟数字时钟;数字时钟的类型是什么?我怀疑它不是一个字符串,如果我是正确的,它永远不可能等于一个字符串。请给我一个。文本时钟数字时钟;如果我想选择报警,将报警管理器设置为每个星期天晚上11:59?请参阅更新的回答如果我在fragmentOnViewCreated
中添加了报警,它还会工作吗?什么是AlarmReceiver.class
是您要我创建的receiver类吗?最后,receiver类只是一个java类,对吗?AlarmReceiver.class是一个广播接收器类,您可以在这里了解更多关于它的信息。如果我想选择报警,在每个星期天晚上11:59设置报警管理器,该怎么办?请参阅更新的回答如果我在fragmentOnViewCreated
中添加它,它还会工作吗?什么是AlarmReceiver.class
是您要我创建的receiver类吗?最后,receiver类只是一个java类,对吗?AlarmReceiver.class是一个广播接收器类,您可以在这里了解更多