所以我创建了一个导航抽屉活动和一些片段。在一个片段上我有一个textView,我需要在其中显示日期,如dd.MM.yyyy 我设法使用以下方法在不同的应用上执行此操作:
//show date
TextView datumprikaz = (TextView)findViewById(R.id.datumprikaz);
Date danas = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String novDatum = sdf.format(danas);
datumprikaz.setText(novDatum);
//End of show date
但是当我现在在MainActivity.java中使用它时,它会显示错误:
尝试在空对象引用上调用虚方法'void android.widget.TextView.setText(java.lang.CharSequence)'
这是错误日志,MainActivity.java和我的fragment.xml(忽略大代码,日期部分是一行):
https://gist.github.com/anonymous/f19acb835b43111f576bef2791c4a28e
答案 0 :(得分:0)
TextView datumprikaz = (TextView)findViewById(R.id.datumprikaz);
您的TextView datumprikaz
与setContentView
这就是变量datumprikaz
为null
答案 1 :(得分:0)
原因是您的文本视图未正确初始化,这就是您获得NullPointerException的原因。如果你的代码在片段类中,你应该像这样得到TextView:
TextView datumprikaz = (TextView)getView().findViewById(R.id.datumprikaz);
希望它有效。
答案 2 :(得分:0)
我明白了!我只需要将代码添加到该片段(在我的情况下为TvrdjavaFragment)。 这是代码:
public class TvrdjavaFragment extends Fragment {
public TvrdjavaFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tvrdjava, container, false);
// Inflate the layout for this fragment
//show date
TextView datumprikaz = (TextView) view.findViewById(R.id.datumprikaz);
Date danas = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String novDatum = sdf.format(danas);
datumprikaz.setText(novDatum);
//End of show date
return view;
}
我添加了显示日期(查看评论标签)