FragmentManager.findFragmentById

FragmentManager.findFragmentByIdは、『Fragmentを挿入している可能性のあるFrameLayoutなどのLayoutのID』からFragmentを見つけるためのメソッド。

FragmentManager  |  Android デベロッパー  |  Android Developers

普通、『FragmentのID』かとおもうけど、そうではない。
となると、複数の場合はどうなるかってなるんだけど、それは今回は扱わない。
strings.xmlで、

2つのFragmentそれぞれに置くTextViewのためのテキスト。
fragment1_main.xmlは、

TextViewだけ。
fragment2_main.xmlも、

TextViewだけ。
activity_main.xmlは、

Buttonに2つのFrameLayout。
Fragment1.javaは、

Viewを普通に生成。
Fragment2.javaも、

Viewを普通に生成。
あとは、MainActivity.javaで、

package com.bgstation0.android.sample.fragmentmanager_;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // Buttonの初期化.
        Button button1 = (Button)findViewById(R.id.button1);	// button1を取得.
        button1.setOnClickListener(new OnClickListener() {	// リスナーをセット.
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				// Fragment1を表示し, Fragment2を非表示にする.
				FragmentManager fragmentManager = getFragmentManager();	// fragmentManagerの取得.
		        Fragment f2 = fragmentManager.findFragmentById(R.id.framelayout2);	// f2を取得.
		        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();	// fragmentTransactionの取得.
		        fragmentTransaction.hide(f2);	// f2を非表示.
		        fragmentTransaction.commit();	// 確定.      
			}
			
		});
        
        // フラグメントの追加.
        FragmentManager fragmentManager = getFragmentManager();	// fragmentManagerの取得.
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();	// fragmentTransactionの取得.
        Fragment1 fragment1 = new Fragment1();	// fragment1の生成.
        fragmentTransaction.add(R.id.framelayout1, fragment1);	// fragment1を追加.
        Fragment2 fragment2 = new Fragment2();	// fragment2の生成.
        fragmentTransaction.add(R.id.framelayout2, fragment2);	// fragment2を追加.
        fragmentTransaction.commit();	// 確定.
        
    }
    
}

framelayout1にfragment1、framelayout2にfragment2をadd。
button1を押したら、framelayout2に紐づけられたFragmentを探して、それを非表示。

起動時
起動時

起動時。
Button1を押したら、

Fragment2が非表示になり、Fragment1だけ残る。
Fragment2が非表示になり、Fragment1だけ残る。

Fragment2が非表示になり、Fragment1だけ残る。

今度は、framelayout1に紐づけられたFragmentを探して、それを非表示。

起動時
起動時

起動時はこうだが、

Button1を押したら、今度はFragment1が消えた。
Button1を押したら、今度はFragment1が消えた。

Button1を押したら、今度はFragment1が消えた。

Sample/android/FragmentManager/findFragmentById/src/FragmentManager at master · bg1bgst333/Sample · GitHub