2017-02-14 48 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