新建一個Fragment時需要宿主Activity向該Fragment傳遞數據

package com.example.viewpagerindicator;

import android.os.Bundle;


import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * A simple {@link Fragment} subclass.
 * 
 */
public class ViewPagerFragment extends Fragment {
	
	private String mTitle;
	public static final String BUNDLE_TITLE = "title";

	public ViewPagerFragment() {
		// Required empty public constructor
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		Bundle bundle = getArguments();
		if(bundle!=null){
			mTitle = bundle.getString(BUNDLE_TITLE);
		}
		TextView textView = new TextView(getActivity());
		textView.setText(R.string.hello_blank_fragment);
		textView.setGravity(Gravity.CENTER);
		return textView;
	}
	
	public static ViewPagerFragment newInstance(String title){
	    Bundle bundle = new Bundle();
	    bundle.putString(BUNDLE_TITLE, title);
	    
	    ViewPagerFragment fragment = new ViewPagerFragment();
	    fragment.setArguments(bundle);
	    return fragment;
	}

}

寫一個靜態方法用於初始化Fragment並且接受Activity傳遞過來的數據,

新建一個Bundle對象,使用Fragment的setArguments()方法設置bundle。

在onCreateView方法中獲取bundle,並且通過bundle的get方法獲取對應的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章