Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 显示当前时间_Java_Android_Android Activity - Fatal编程技术网

Java 显示当前时间

Java 显示当前时间,java,android,android-activity,Java,Android,Android Activity,我目前正试图向我的自定义ListView显示当前时间,但我一直收到一个NullPointerException,我想知道我做错了什么,因为我已经在向数组添加数据并获取它的值 自定义适配器和setter/getter如下所示: 如何修改它,使其不会返回空指针错误并将正确的时间返回到我的列表视图?请尝试从以下站点实现此代码 Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM

我目前正试图向我的自定义ListView显示当前时间,但我一直收到一个NullPointerException,我想知道我做错了什么,因为我已经在向数组添加数据并获取它的值

自定义适配器和setter/getter如下所示:


如何修改它,使其不会返回空指针错误并将正确的时间返回到我的列表视图?

请尝试从以下站点实现此代码

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());

希望您有任何疑问或问题,请务必告诉我。

尝试从以下站点实现此代码

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());

希望有任何疑问或问题,请务必告诉我。

您会收到NullPointerException,因为创建适配器时线程尚未完成。 线程启动后,您将立即从boss_title中读取结果。 这是不可能的,因为您必须等待它完成

您应该为此使用AsyncTask,并在onPostExecute()中创建适配器

SimpleDataFormat类也不是线程安全的:

public static Date dateToString(Date date, final String format, final Locale locale)
  ThreadLocal<SimpleDateFormat> formater = new ThreadLocal<SimpleDateFormat>() {
    @Override
    protected SimpleDateFormat initialValue() {
      return new SimpleDateFormat(format, locale);
    }
  };
  return formater.get().format(string);
}
公共静态日期字符串(日期、最终字符串格式、最终区域设置)
ThreadLocal格式化程序=新的ThreadLocal(){
@凌驾
受保护的SimpleDataFormat初始值(){
返回新的SimpleDataFormat(格式、区域设置);
}
};
返回formatter.get().format(字符串);
}

由于创建适配器时线程尚未完成,因此会出现NullPointerException。 线程启动后,您将立即从boss_title中读取结果。 这是不可能的,因为您必须等待它完成

您应该为此使用AsyncTask,并在onPostExecute()中创建适配器

SimpleDataFormat类也不是线程安全的:

public static Date dateToString(Date date, final String format, final Locale locale)
  ThreadLocal<SimpleDateFormat> formater = new ThreadLocal<SimpleDateFormat>() {
    @Override
    protected SimpleDateFormat initialValue() {
      return new SimpleDateFormat(format, locale);
    }
  };
  return formater.get().format(string);
}
公共静态日期字符串(日期、最终字符串格式、最终区域设置)
ThreadLocal格式化程序=新的ThreadLocal(){
@凌驾
受保护的SimpleDataFormat初始值(){
返回新的SimpleDataFormat(格式、区域设置);
}
};
返回formatter.get().format(字符串);
}
只需在hanlder方法中传递textview。那很好



只需在hanlder方法中传递textview。那很好。

你有什么错误?你能给我们看看你的日志吗please@Soham请在最后一个for循环中使用logcatIn进行编辑。“老板”图标是否已初始化?@R.Adang是的。如果我修改,只传递“boss\u图标”和“boss”并删除“boss\u时间”,则应用程序运行时不会出错。您遇到了什么错误?您可以向我们显示您的日志吗please@Soham请在最后一个for循环中使用logcatIn进行编辑。“老板”图标是否已初始化?@R.Adang是的。如果我修改,只传递“boss\u图标”和“boss”并删除“boss\u时间”,那么应用程序运行时不会出错。啊,好的,我可以理解这是一个问题的原因。我对AsyncTask的工作方式有点困惑,因为时间会不断更新,所以从技术上讲线程永远不会结束,这意味着无法执行postexecute?那么您可以使用倒计时,它可以在指定的时间()后重复执行。在onTick方法中,您可以检索新的时间戳。啊,好的,我可以理解为什么这是一个问题。我对AsyncTask的工作方式有点困惑,因为时间会不断更新,所以从技术上讲线程永远不会结束,这意味着无法执行postexecute?那么您可以使用倒计时,它可以在指定的时间()后重复执行。在onTick方法中,您可以检索新的时间戳。抱歉,我知道如何获取时间,我是在询问如何不断将时间更新到文本视图。抱歉,我知道如何获取时间,我问的是不断更新文本视图的时间。这似乎已经修复了空指针错误,但文本视图似乎没有刷新?您必须在处理程序方法内设置文本视图。因此,它将在某个时间后刷新。这似乎已修复空指针错误,但textview似乎没有刷新?您必须在处理程序方法内设置textview。所以过一段时间就会让人耳目一新。
 Handler handler=new Handler();
 handler.post(new Runnable(){

        @Override
        public void run() {

             // upadte textView here

            handler.postDelayed(this,500); // set time here to refresh textView

        }

    });