我遇到findViewById()
的问题。每当我在这段代码中使用它时,它就会显示错误。有时Android工作室建议我这样做TextView DateView = null;
和
DateView = (TextView)DateView.findViewById(R.id.DateView);
但这也给出了错误。有人可以帮我解决这个问题。
public class OperationFragment extends Fragment {
public OperationFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_operation, container, false);
}
public void onCreate (Bundle savedInstabceState){
super.onCreate(savedInstabceState);
Calendar c = Calendar.getInstance();
SimpleDateFormat dd = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat dt = new SimpleDateFormat("HH:mm a");
String formattedDate = dd.format(c.getTime());
String formattedTime = dt.format(c.getTime());
TextView DateView;
TextView TimeView;
System.out.println(formattedTime);
System.out.println(formattedDate);
DateView = (TextView)findViewById(R.id.DateView);
DateView.setText(formattedDate);
TimeView = (TextView)findViewById(R.id.TimeView);
TimeView.setText(formattedTime);
}
}
答案 0 :(得分:2)
当您使用片段时,我建议这样做:
在onCreateView中:
TextView TimeView;
View rootView = inflater.inflate(R.layout.fragment_operation, container, false);
TimeView = (TextView)rootView.findViewById(R.id.TimeView);
TimeView.setText("Anik Rahman");
return rootView;
答案 1 :(得分:1)
这里有几个问题。
第一个也是最重要的一个是onCreate()
在onCreateView()
之前调用Fragements。而是使用onViewCreated()
。
第二个是,片段上没有方法findViewById()
。在onViewCreated()
中,您有一个View
参数。因此,您可以使用view.findViewById()
代替。