Моментальний фрагмент правильним способом!
getArguments()
setArguments()
методи здаються дуже корисними, коли мова йде про інстанціювання фрагмента за допомогою статичного методу.
тобтоMyfragment.createInstance(String msg)
Як це зробити?
Код фрагмента
public MyFragment extends Fragment {
private String displayMsg;
private TextView text;
public static MyFragment createInstance(String displayMsg)
{
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
args.setString("KEY",displayMsg);
fragment.setArguments(args); //set
return fragment;
}
@Override
public void onCreate(Bundle bundle)
{
displayMsg = getArguments().getString("KEY"): // get
}
@Override
public View onCreateView(LayoutInlater inflater, ViewGroup parent, Bundle bundle){
View view = inflater.inflate(R.id.placeholder,parent,false);
text = (TextView)view.findViewById(R.id.myTextView);
text.setText(displayMsg) // show msg
returm view;
}
}
Скажімо, ви хочете передати рядок під час створення екземпляра. Ось як ви це зробите.
MyFragment.createInstance("This String will be shown in textView");
Детальніше
1) Чому Myfragment.getInstance (String msg) віддається перевагу перед новим MyFragment (String msg)?
2) Зразок коду на фрагменти