Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动更改为新日期以在android中显示日期_Java_Android_Xml - Fatal编程技术网

Java 自动更改为新日期以在android中显示日期

Java 自动更改为新日期以在android中显示日期,java,android,xml,Java,Android,Xml,我已经在我的android应用程序的textview上设置了显示当前日期,它可以工作,但在我们关闭应用程序并打开之前,它不会在凌晨00:00:00后自动更改为新日期。请帮助。这是我的密码: TextView tv = (TextView) findViewById(R.id.date); String ct = DateFormat.getDateInstance().format(new Date()); tv.setText(ct); 这将是一个相当多的代码添加,但是,这里

我已经在我的android应用程序的textview上设置了显示当前日期,它可以工作,但在我们关闭应用程序并打开之前,它不会在凌晨00:00:00后自动更改为新日期。请帮助。这是我的密码:

TextView tv = (TextView) findViewById(R.id.date);
    String ct = DateFormat.getDateInstance().format(new Date());
    tv.setText(ct);

这将是一个相当多的代码添加,但是,这里是你必须做的

假设您有一个扩展
活动的类
,则需要重写
onPause()
onResume()

例如:

@Override
protected void onPause() {
    super.onPause();
}

@Override
protected void onResume() {
    super.onResume();
}
在这两种方法中,您必须注册和注销
IntentFilter

创建
IntentFilter
作为全局变量。我们还将创建稍后使用的侦听器

private IntentFilter filter;
private final BroadcastReceiver listener;
onCreate()
中实例化它

此外,在这之后,我们将直接创建侦听器,告诉它在日期更改时应该做什么

listener = new BroadcastReceiver() {
    @Override
    public void onReceive(Context c, Intent i) {
        TextView tv = (TextView) findViewById(R.id.date);
        String ct = DateFormat.getDateInstance().format(new Date());
        tv.setText(ct);
    }
};
最后,我们必须在应用程序打开和关闭时注册和注销侦听器

@Override
protected void onResume() {
    super.onResume();
    registerReceiver(listener, filter);
}

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(listener);
}
而且,你有它!现在日期更改时应自动更新。此外,我不建议每次日期更改时都重新初始化
TextView
,但您当前的代码就是这样,所以我将其保留


更多信息来自

这是因为初始化只发生一次请告知我可以做什么让它始终初始化您想在12:00更改
TextView
内容?您需要决定何时更改日期(例如,当从该活动开始的活动返回时,会发生onResume,或者您可以在onClick上单击一个按钮(单击按钮时)进行更改。)。您也可以使用用户
AlarmManager
我不太了解哪些部分?也许我可以提供帮助。@SamithFP您的Java文件是否扩展了活动?@SamithFPI已经按照您的代码进行了操作,但问题出在super.onResume上,super.onPause上是红色的,那么错误是什么
@Override
protected void onResume() {
    super.onResume();
    registerReceiver(listener, filter);
}

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(listener);
}