2017-02-14 45 views
1

我有這個問題的片段..我想在我的應用程序中添加一個抽屜菜單,並與片段的工作。我有這個代碼,當我把碎片「findviewbyid」沒有工作更多。有人可以幫助我嗎?FindViewbyID與片段

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fragment_contact); 



    final EditText nome  = (EditText) findViewById(R.id.nome); 
    final EditText citta  = (EditText) findViewById(R.id.citta); 
    final EditText numero  = (EditText) findViewById(R.id.numero); 
    final EditText email  = (EditText) findViewById(R.id.email); 
    final EditText oggetto  = (EditText) findViewById(R.id.oggetto); 
    final EditText messaggio = (EditText) findViewById(R.id.messaggio); 



    Button email = (Button) findViewById(R.id.post_message); 
    email.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      String name  = nome.getText().toString(); 
      String citta  = citta.getText().toString(); 
      String numero = numero.getText().toString(); 
      String email  = mail.getText().toString(); 
      String oggetto = oggetto.getText().toString(); 
      String messaggio = messaggio.getText().toString(); 
      if (TextUtils.isEmpty(nome)){ 
       nome.setError("Inserisci il Tuo Nome"); 
       nome.requestFocus(); 
       return; 
      } 

謝謝和抱歉,我的英語水平

+1

應該在onCreateView()方法中設置片段佈局 – Devsil

回答

2

Fragment不是Activity,這意味着你不能使用活性的方法,或者它的生命週期。這意味着你不能在onCreate()方法中找到Fragment的方法,也不能在其上使用findViewById

這是Android的生命週期https://stackoverflow.com/a/36340059/4467208

,並根據該調整你的代碼,將您findViewsonCreateView()這樣

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragmentLayout, container, false); 
    nome = (EditText) view.findViewById(R.id.nome); 
    return view; 
} 

等。

+1

謝謝!現在它工作了! – Mark