ActivityがFragmentにジャンプする方法

1844 ワード

詳細
Activityは直接Intentでfragmentをジャンプすることはできないので、例外的な方法で処理します.
ちょうど私のActivityにはgridViewがありますが、このgridViewは中の画像をクリックすると、適切に対応するfragmentにジャンプします.
私の方法はまず新しいActivityにジャンプして、それからこのActivityに基づいてジャンプします.
以下はandroidコードです.これはジャンプ中継のクラスです.このクラスのFrameLayoutを利用して、直接fragmentをロードします(実はfragmentをActivityにネストしています).しかし、クラス名をこの中継クラスに渡します.
 
public class MyFragment extends FragmentActivity {
	public String className = "";
	public FrameLayout frameLayout;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        setContentView(R.layout.sys_chg_fragment);  
        init();// 
		getValue();// 
		if(StringUtils.isNotEmpty(className)){
			// Fragment, , 
			FragmentManager fm =  getSupportFragmentManager(); 
			//  Fragment   
	        FragmentTransaction transaction = fm.beginTransaction(); 
	        try{
	        	Class> fragClass = Class.forName(className);// 
	        	Object obj = fragClass.newInstance();
	        	Fragment fragment = (Fragment)obj;// Fragment
	        	// 
	             transaction.replace(R.id.chg_fragment$framelayout, fragment);  
	             transaction.commit();
	        }catch(Exception e){
	        	Logger.error("##############", e, "class error");
	        }
	        
	       
		}
	}

	public void init(){
		// 
		frameLayout = (FrameLayout)findViewById(R.id.chg_fragment$framelayout);
	}
	
	// 
	public void getValue(){
		Intent intent =getIntent();
		className =  intent.getExtras().getString("className");
	}
}