การสร้าง Fragment เป็นวิธีที่ถูกต้อง!
getArguments()
setArguments()
วิธีการดูเหมือนมีประโยชน์มากในการสร้างอินสแตนซ์ Fragment โดยใช้วิธีคงที่
กล่าวคือ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);
return fragment;
}
@Override
public void onCreate(Bundle bundle)
{
displayMsg = getArguments().getString("KEY"):
}
@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)
returm view;
}
}
สมมติว่าคุณต้องการส่งผ่าน String ในขณะที่สร้างอินสแตนซ์ นี่คือวิธีที่คุณจะทำ
MyFragment.createInstance("This String will be shown in textView");
อ่านเพิ่มเติม
1) ทำไม Myfragment.getInstance (String msg) จึงเป็นที่ต้องการมากกว่า MyFragment (String msg) ใหม่
2) โค้ดตัวอย่างบน Fragments