0
我在有兩個TextEdit字段的活動中有一個片段。 我有一個方法顯示片段,無論是與標準的EditText值,或從數據庫中提取的值。刷新帶有文本字段變化的片段
但是,當以前顯示片段時,片段不會在第二次顯示時使用文本字段中的新值自行更新它。
從我收集的信息來看,這是因爲Android正在回收視圖,所以我試圖在第二次顯示片段時使該片段無效,以便刷新它,但這不起作用。
任何人都可以幫忙嗎?
在活動(修訂版)
public void showEditBirthdayFragment(boolean showExisting, int listIndex) {
if(showExisting) {
Birthday birthday = getBirthdayArray().get(listIndex);
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
String date = format.format(birthday.getBirthdate());
int day = Integer.parseInt(date.substring(0, 2));
int month = Integer.parseInt(date.substring(3,5));
int year = Integer.parseInt(date.substring(6));
Bundle bundle = new Bundle();
bundle.putString("name", birthday.getName());
bundle.putString("phone", birthday.getPhonenumber() + "");
bundle.putInt("day", day);
bundle.putInt("month", month);
bundle.putInt("year", year);
editBirthdayFragment.setArguments(bundle);
}
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.mainActivity, editBirthdayFragment, "editBirthdayFragment");
transaction.addToBackStack(null);
transaction.commit();
}
在片段:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
editTextName = (EditText) getActivity().findViewById(R.id.editTextName);
editTextPhone = (EditText) getActivity().findViewById(R.id.editTextPhone);
datePicker = (DatePicker) getActivity().findViewById(R.id.datePicker);
savedInstanceState = getArguments();
if(savedInstanceState != null) {
editTextName.setText(savedInstanceState.getString("name"));
editTextPhone.setText(savedInstanceState.getString("phone"));
datePicker.updateDate(savedInstanceState.getInt("year"), savedInstanceState.getInt("month"), savedInstanceState.getInt("day"));
}
}
你可以發表你的整個代碼,因爲這並沒有給主意的值是如何設置 – dex
你應該使用'setArguments'方法值現在更新了我的代碼發送到'editBirthdayFragment' –
@MehulJoisar 。仍然沒有運氣。 – Petter