2016-06-11 128 views
-1

我遇到了問題findViewById()。每當我在這段代碼中使用它,它都會顯示我錯誤。有時候,Android的工作室建議我做這樣的TextView DateView = null;無法使用findViewById

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

你必須在onCreateView() –

回答

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; 
+0

@AnikRahman訪問您的意見是否爲您工作? –

+0

不,那也不適合我。它給了我幾個錯誤。 –

+1

@AnikRahman您是否從onCreate中刪除了一切,因爲它在onCreateView之前被調用? –

1

有幾個問題在這裏。

第一個也是最重要的一個是,onCreate()onCreateView()之前被調用爲Fragements。請使用onViewCreated()

第二個是,片段上沒有方法findViewById()。在onViewCreated()你有一個View參數雖然。所以你可以用view.findViewById()代替。

相關問題