EditText.setText()在Fragment中不起作用

时间:2015-11-11 11:05:22

标签: android android-fragments

FrameLayout中有CoordinatorLayout。我正在Fragment加载FrameLayout。但无法在EditText中设置Fragment s的文字。

@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中设置文字?

4 个答案:

答案 0 :(得分:7)

将您的退货声明更改为:

return rootView;

您当前正在返回的View不是您最初正在充气和设置的那个。

答案 1 :(得分: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;      
}

答案 2 :(得分:0)

onCreateView中的

更改以下行

  

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

  

返回rootView;

然后它会工作得很好

答案 3 :(得分: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;
}