Khởi tạo Fragment đúng cách!
getArguments()
setArguments()
các phương thức dường như rất hữu ích khi nói đến việc khởi tạo một Fragment bằng một phương thức tĩnh.
I EMyfragment.createInstance(String msg)
Làm thế nào để làm nó?
Mã phân mảnh
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;
}
}
Giả sử bạn muốn chuyển một Chuỗi trong khi tạo một Phiên bản. Đây là cách bạn sẽ làm điều đó.
MyFragment.createInstance("This String will be shown in textView");
Đọc thêm
1) Tại sao Myfragment.getInstance (String msg) được ưu tiên hơn MyFragment mới (String msg)?
2) Mã mẫu trên các mảnh