【问题标题】:Show Date in a TextView在 TextView 中显示日期
【发布时间】:2015-02-08 12:03:07
【问题描述】:

您好,我想在文本视图中显示实际日期,但我遇到了一些问题。 我正确收到日期,并将其打印在日志上,然后我看到了。我将日期保存在字符串中,但是当我尝试将字符串传递给文本时,会返回一个空指针异常,我不知道为什么,因为我在日志上打印了字符串并且我看到了它。 我的代码:

public void ComprobarDia() {
    Calendar c = Calendar.getInstance();

    SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    String formattedDate = df.format(c.getTime());
    Datos.fecha=formattedDate;
    Log.d("Calendario", Datos.fecha);
    TV.setText(Datos.fecha);
}

我在 OnCreate 方法中执行它。 “Datos.fecha”是一个公共静态字符串。 为什么我在最后一行收到 nullpointerexception 但在日志中显示正确?

【问题讨论】:

  • 我猜是TVnull
  • TV 是如何定义的?您是否仔细检查了布局中的 ID?请注意您已经使用setContentView(R.layout.yourLayout)onCreate() 中分配了布局。
  • 很多如果和但@Guixe94。发布您的onCreate() 以消除所有疑虑。如果您发布错误堆栈会更好
  • 谢谢它没有正确定义。我把这个:TV=(TextView)myInflatedView.findViewById(R.id.TV);在 OnCreateView 上(因为我在片段上有它),现在我没有 nullpointer 错误,但 textView 的文本没有显示日期.. 保持白色,有人知道为什么吗?

标签: android string date textview


【解决方案1】:

你还没有初始化你的TextView,因此它是null

您的onCreate() 方法需要包含此代码。

//Layout with your TextView
setContentView(R.layout.yourLayout);
TextView TV = (TextView) findViewById(R.id.yourTextViewId);

然后,你可以调用

TV.setText(Datos.fecha);

【讨论】:

  • 你怎么确定他没有初始化TV
  • 因为TV.setText(Datos.fecha); 给出了nullPointerException,如问题中所述。 @EdmDroid
  • 是的,我放了这个:TV=(TextView)myInflatedView.findViewById(R.id.TV);在 OnCreateView 上(因为我在片段上有它),现在我没有 nullpointer 错误,但 textView 的文本没有显示日期.. 保持白色,有人知道为什么吗?
  • 因为问的人说发生在最后一行,而且Datos不能为null,否则会更早引发异常。因此 TV 必须为空。
  • @Guixe94 我不确定。没有更多代码很难说。我建议您打开一个新问题,并尝试尽可能具体。显示更多相关代码,并尝试提示您认为可能出错的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多