2015-02-08 69 views
-2

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

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,但在日志中显示正确?

+4

我的猜测是'TV'是'null' – StenSoft 2015-02-08 12:04:59

+0

如何'TV'定义?您是否在布局中仔细检查了ID?注意你已经使用'setContentView(R.layout.yourLayout)'在'onCreate()'中分配了你的布局。 – Trinimon 2015-02-08 12:06:37

+0

许多ifs和buts @ Guixe94。发布你的'onCreate()'清除所有疑惑。如果你发布错误堆栈,更好, – EdmDroid 2015-02-08 12:13:02

回答

0

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

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

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

然后,您可以拨打

TV.setText(Datos.fecha); 
+0

你怎么知道他没有初始化'TV'? – EdmDroid 2015-02-08 12:14:20

+0

因为'TV.setText(Datos.fecha);'给出了一个'nullPointerException',正如问题所述。 @EdmDroid – Marcus 2015-02-08 12:15:23

+0

是的,我把这个:TV =(TextView)myInflatedView.findViewById(R.id.TV);在OnCreateView(因为我有它在一个片段),现在我没有nullpointer错误,但textView的文本不显示日期..保持白色,任何人都知道为什么? – Guixe94 2015-02-08 12:16:40