2017-02-14 37 views
1

Ich habe dieses Problem mit Fragmenten .. Ich wollte ein Schubladenmenü in meiner App hinzufügen und dann mit Fragmenten arbeiten. Ich habe diesen Code, und als ich die Fragmente putted "findviewbyid" funktioniert nicht mehr. Jemand kann mir helfen?FindViewbyID mit Fragmenten

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; 
      } 

danke und sorry für mein Englisch

+1

Fragment Layouts sollten in der onCreateView() - Methode – Devsil

Antwort

2

Die Fragment ist kein Activity, die bedeutet, dass Sie keine Aktivität Methoden verwenden können, oder es ist Lebenszyklus. Das bedeutet, dass Sie keine Sichten in der onCreate() Methode eines Fragment finden können, und Sie können findViewById auf es entweder nicht verwenden.

Dies ist der Android Lifecycle https://stackoverflow.com/a/36340059/4467208

und Ihren Code einzustellen, dass nach, bewegen Sie findViews in onCreateView() wie dieses

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; 
} 

Und so weiter.

+1

eingestellt werden Vielen Dank! Jetzt funktioniert es! – Mark