Как я могу изменить этот код, чтобы использовать его в упражнении? - PullRequest
0 голосов
/ 28 января 2019

У меня есть этот код для установки заголовка при добавлении фрагмента:

if (!HomeActivity.checkLoading)
        SettingsMain.showDilog(getActivity());
    Call<ResponseBody> myCall = restService.getHomeDetails(UrlController.AddHeaders(getActivity()));
    myCall.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> responseObj) {
            try {
                if (responseObj.isSuccessful()) {
                    Log.d("info HomeGet Responce", "" + responseObj.toString());

                    JSONObject response = new JSONObject(responseObj.body().string());
                    if (response.getBoolean("success")) {
                        responseData = response.getJSONObject("data");
                        HomeActivity.checkLoading = false;
                        getActivity().setTitle(response.getJSONObject("data").getString("page_title"));

, и я хочу добавить в действие addOnBackStackChangedListener, так как я могу использовать этот код внутри этого действия, чтобы установить заголовокпри возвращении:

getSupportFragmentManager().addOnBackStackChangedListener(
            new FragmentManager.OnBackStackChangedListener() {
                public void onBackStackChanged() {

                    // Update your UI here.
                                       }
            });

Ответы [ 2 ]

0 голосов
/ 28 января 2019

вы можете управлять методом обратной связи в действии следующим образом:

@Override
public void onBackPressed(){
    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        Log.i("MainActivity", "popping backstack");
        fm.popBackStack();
        Fragment fragment = getFragmentManager().findFragmentByTag("YOUR_TARGET_FRAGMENT_TAG");
        if (fragment instanceof FragmentA) {
            // add your code to change title of toolbar
        }
    } else {
        Log.i("MainActivity", "nothing on backstack, calling super");
        super.onBackPressed();  
    }
}
0 голосов
/ 28 января 2019

Я не уверен, что это то, что вам нужно, но вы можете попробовать

    activity?.supportActionBar?.title = "some title"

Я использую его для изменения названия при выборе другой вкладки на панели вкладок

...