onBackPressedとリフレッシュ機能のアンドロイドを呼びます

レスター:

私は、タブバーの活動に私は戻ってボタンを押すだけで一つの断片をリフレッシュしたいです。私はそれをどのように達成することができますか?私が試しました

、java.lang.NullPointerExceptionが:NULLオブジェクト参照に「)android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction(」仮想メソッドを呼び出すしよう

フラグメントのプロフィール

public void refreshFragment(){
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.detach(this).attach(this).commit();
}

プロフィールを編集活動

@Override
public void onBackPressed() {
    super.onBackPressed();
    FragmentProfile fragment = new FragmentProfile();
    fragment.refreshFragment();
}
ヴァン:

あなたは使用することができますSharedPreferencesをこれを行うには。

ステップ1:定数クラスを作成します。

public class Constants {
    public static final String REFRESH = "refresh_content";
}

ステップ2:constants.REFRESH編集上のプロフィール活動にブール値を入れて、

private SharedPreferences pref;

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    pref = PreferenceManager.getDefaultSharedPreferences(getContext());

    return inflater.inflate(R.layout.fragment_rostering, container, false);
}

public void onBackPressed() {
    SharedPreferences.Editor editor = pref.edit();
    editor.putBoolean(Constants.REFRESH, true);
    editor.commit();
    super.onBackPressed();
}

ステップ3:断片プロフィール上のonResumeのコールリフレッシュ機能

private SharedPreferences pref;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    pref = PreferenceManager.getDefaultSharedPreferences(getContext());

    return inflater.inflate(R.layout.fragment_profile, container, false);
}

@Override
public void onResume() {
    super.onResume();
    if(pref.getBoolean(Constants.REFRESH, false)){
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean(Constants.REFRESH, false);
        editor.commit();
        refreshFragment();
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=203792&siteId=1