2017-02-14 29 views
1

私は断片でこの問題を抱えています。私は、アプリでドロワーメニューを追加し、フラグメントで作業したいと思いました。私はこのコードを持っています、そして、 "findviewbyid"という断片をputtedしたとき、もっとうまく動作しませんでした。誰かが私を助けることができますか?断片で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()メソッドのビューを見つけることができず、findViewByIdを使用することはできません。

これはAndroidのライフサイクルhttps://stackoverflow.com/a/36340059/4467208

とそれに応じてコードを調整することで、その上でこの

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

などonCreateView()にあなたのfindViewsを移動します。

+1

ありがとう!今それは動作します! – Mark