Я сделал этот код:только TextViews теряет свое значение, когда я нажимаю назад
public class THGSFragment extends Fragment
{
PageFragmentListener listener;
EditText tcET, tasET,wET,vET;
TextView tcTW, tasTW,vwTW, tasUM, wvUM, insert11, text;
ImageView button;
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_thg, container, false);
View.OnClickListener handler = new View.OnClickListener()
{
@Override
public void onClick(View view)
{
if (view.getId() == R.id.calcEAS)
{
listener.replace(0,THGSCalcFragment.class,null);
}
else if(view.getId() == R.id.rhoUM)
{
RecyclerSpeedFragment dialog = new RecyclerSpeedFragment();
dialog.setTargetFragment(THGSFragment.this, 1);
dialog.show(getActivity().getSupportFragmentManager(), "SPEEDDIALOGTAG");
}
}
};
button= (ImageView) rootView.findViewById(R.id.calcEAS);
button.setOnClickListener(handler);
tcET = (EditText)rootView.findViewById(R.id.paisaET);
tcET.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
tcTW = (TextView)rootView.findViewById(R.id.tasTW);
tcTW.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
tasET = (EditText)rootView.findViewById(R.id.oatdET);
tasET.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
tasTW = (TextView)rootView.findViewById(R.id.paisaTW);
tasTW.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
wET = (EditText)rootView.findViewById(R.id.wET);
wET.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
vET = (EditText)rootView.findViewById(R.id.vET);
vET.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
tasUM = (TextView)rootView.findViewById(R.id.rhoUM);
tasUM.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Medium.ttf"),Typeface.BOLD);
tasUM.setOnClickListener(handler);
vwTW = (TextView)rootView.findViewById(R.id.wTW);
vwTW.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
wvUM = (TextView)rootView.findViewById(R.id.vUM);
wvUM.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Medium.ttf"),Typeface.BOLD);
insert11 = (TextView)rootView.findViewById(R.id.insert11);
insert11.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
text = (TextView)rootView.findViewById(R.id.eascalculate);
text.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
return rootView;
}
public void onAttach(Context context)
{
super.onAttach(context);
if (context instanceof PageFragmentListener)
{
listener = (PageFragmentListener) context;
} else
{
throw new RuntimeException(context.toString()
+ " deve implementare PageFragmentListener");
}
}
@Override
public void onDetach()
{
Log.d("str","Ondetach");
super.onDetach();
listener = null;
}
public void setText(String text)
{
tasUM.setText(text);
}
}
, который хорошо работает. Когда я нажимаю на button
меняю фрагмент и я хожу здесь:
public class THGSCalcFragment extends Fragment
{
PageFragmentListener listener;
Button back, graphics;
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_thgscalc, container, false);
Bundle bundle = getArguments();
RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerthgs);
recyclerView.setNestedScrollingEnabled(false);
back = (Button)rootView.findViewById(R.id.buttonBack);
graphics = (Button)rootView.findViewById(R.id.buttonGraphics);
back.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
graphics.setTypeface(Typeface.createFromAsset(getActivity().getAssets(),"fonts/Avenir-Book.ttf"));
THGSAdapter adapter = new THGSAdapter(getActivity());
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.addItemDecoration(new SimpleDividerItemDecoration(getActivity()));
recyclerView.setAdapter(adapter);
return rootView;
}
public void onResume()
{
super.onResume();
if(getView() == null)
{
return;
}
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK)
{
listener.back();
Log.e("resume","resume THGS");
return true;
}
return false;
}
});
}
public void onAttach(Context context)
{
super.onAttach(context);
if (context instanceof PageFragmentListener)
{
listener = (PageFragmentListener) context;
} else
{
throw new RuntimeException(context.toString()
+ " deve implementare PageFragmentListener");
}
}
@Override
public void onDetach()
{
super.onDetach();
listener = null;
}
}
, когда я нажимаю назад, я мог видеть значение на EditTexts вставленного раньше, но я не мог видеть значение в TextView tasUM вставленное раньше с dialogFragment , Почему это происходит?
Благодаря
это работает хорошо, если я извлекаю значение диалога с помощью onActivityResult(), он не работает, если я использую интерфейсы – ste9206