2017-02-14 2 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() 메소드에서 뷰를 찾을 수 없으므로 findViewById을 사용할 수 없습니다.

이 안드로이드 라이프 사이클 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