1

textView をクリックすると、フラグメントを削除してトーストを表示したいと考えています。私のコードはトーストを表示しますが、フラグメントを削除しません。

私の方法:

public void hide(View view) {

        My_frag myFrag= new My_frag();
        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();
        transaction.remove(myFrag);
        transaction.commit();
        Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG)
                .show();
    }

My_frag クラス:

public class My_frag extends android.support.v4.app.Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.my_frag_layout, container, false);
    }
}
4

2 に答える 2

5

ある時点で、Fragment正しいものを作成して追加する必要がありますか? メソッドでフラグメントを再作成しているhide(...)ため、追加されたことのないものを削除しようとしています。確かにインスタンスを追加したかもしれませんが、削除しようとしているインスタンスではありません。代わりに、にグローバル変数を作成Fragment fragToRemoveしますActivity。フラグメントを作成すると (それはどこでも行うことですtransaction.add(fragToRemove = new My_Frag);)、インスタンスを保持します。次にに変更するtransaction.remove(myFrag)transaction.remove(fragToRemove)、問題なく動作するはずです。

于 2012-07-29T20:41:46.777 に答える