2015-11-11 61 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; 
}