Instanciando o Fragmento da maneira correta!
getArguments()
setArguments()
os métodos parecem muito úteis quando se trata de instanciar um Fragment usando um método estático.
ieMyfragment.createInstance(String msg)
Como fazer isso?
Código de fragmento
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;
}
}
Digamos que você queira passar uma String ao criar uma Instância. É assim que você vai fazer.
MyFragment.createInstance("This String will be shown in textView");
consulte Mais informação
1) Por que Myfragment.getInstance (String msg) é preferido em vez de novo MyFragment (String msg)?
2) Amostra de código em fragmentos