2015-11-11 62 views
2

我有一個FrameLayoutCoordinatorLayout。我在FrameLayout中加載Fragment。但不能在Fragment中設置EditText的文字。EditText.setText()不工作在片段

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = getActivity(); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView  = inflater.inflate(R.layout.fragment_edit_info, container, false); 

    etEmail    = (EditText) rootView.findViewById(R.id.etEmail); 
    etFullName   = (EditText) rootView.findViewById(R.id.etFullName); 



    return inflater.inflate(R.layout.fragment_edit_info, container, false); 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    etEmail.setText("ggggg"); 
} 

@Override 
public void onResume() { 
    super.onResume(); 

    etEmail.setText("ggggg");//LocalDBSP.init().getUser(context) 
    etFullName.setText(LocalDBSP.init().getFullName(context)); 
} 

我試了很多。很多人說這是一個錯誤。那麼,你如何在EditText中設置文字?

+1

您需要返回根視圖渲染片段 – Olu

回答

7

更改您的return語句:

return rootView; 

View您目前是回不是你最初充氣和建立一個。

+0

謝謝這是我遇到的同樣的問題和解決方案。 –

0

在onCreateView更改以下行

回報inflater.inflate(R.layout.fragment_edit_info,容器, 假);

TO

回報rootView;

那麼它會工作的所有罰款

1

你編輯文本是有,但你剛纔設置透明背景,所以你不能看到它。

android:background="#00000000" 

編輯,因爲上面沒有解決問題嘗試更新您膨脹您的佈局方式

public View onCreateView(LayoutInflater inflater, ViewGroup parent, 
    Bundle savedInstanceState) { 

aView = inflater.inflate(R.layout.details2, parent, false); 
EditText notatki = (EditText) aView.findViewById(R.id.editText1); 

//notatki = (EditText) getView().findViewById(R.id.editText1); 
SharedPreferences settings = this.getActivity().getSharedPreferences("PREFS", 0); 
notatki.setText(settings.getString("value", "raz dwa trzy")); 
return notatki;  
} 
0

試着改變你的onCreateView這樣

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View rootView  = inflater.inflate(R.layout.fragment_edit_info, container, false); 

    etEmail    = (EditText) rootView.findViewById(R.id.etEmail); 
    etFullName   = (EditText) rootView.findViewById(R.id.etFullName); 

    return rootView; 
}