fragment A
에 의해 배치 된 activtity
을 사용하고 있습니다. fragment A
에는 tab A
, tab B
및 tab C
의 3 개 탭이 포함되어있어 앱이 실행되면 tab B
이 표시됩니다. 이 세 개의 탭은 목록 중 하나를 클릭 할 때 fragment A
이 fragment B
으로 바뀌면 fragment B
에서 역 누를 때 클릭 한 탭을 표시해야합니다.tabactivity 및 단편을 사용하는 동안 backpressed 처리하는 방법
-4
A
답변
0
다음을 수행하십시오. 그 좋은 예는 Fragment
에 onBackPressed()
기능을 구현하기 위해 Abstract Class
과 Backable Fragment
을 사용합니다.
1) 추상 클래스 만들기 -
public class FragmentChannels extends BackableFragment {
...
@Override
public void onBackButtonPressed() {
if (doTheThingRequiringBackButtonOverride) {
// do the thing
} else {
//go to your preferable fragment or activity when you press back on any fragment
}
}
...
}
그게 전부에요 -
import android.app.Fragment;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
public abstract class BackableFragment extends Fragment implements View.OnKeyListener {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener(this);
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackButtonPressed();
return true;
}
}
return false;
}
public abstract void onBackButtonPressed();
}
2) 당신의 Fragment
에 Abstract Class
를 구현합니다. Reference
0
Try this in on click
view = getActivity().findViewById(R.id.activity_page1);
ViewPager viewPager= (ViewPager)view.findViewById(R.id.viewpager);
int tab = viewPager.getCurrentItem();
tab--;
viewPager.setCurrentItem(tab);
스택 오버 플로우에 오신 것을 환영합니다! [좋은 질문을하는 방법은 무엇입니까?] (https://stackoverflow.com/help/how-to-ask)와 [[Minimal, Complete, Verifiable Example]을 만드는 방법] (https : //stackoverflow.com/help/mcve). – Teasel
지금까지 시도한 것을 게시 할 수 있습니까? –