안드로이드에서 탭 레이아웃을 수행하려고하는데, 탭 바를 액션 바에 추가하려하지만 작동하지 않습니다. 내 문제는 함수의이 단계에서 setTabListener((android.app.ActionBar.TabListener) actionBar));
, 오류 로그는 cannot be cast to android.app.ActionBar$TabListener
했다. 나는 이미 setTabListener(this)
을 설정했지만, 내 기능에서는 this
이 Fragment를 참조하고 이유를 모르겠습니다.탭 리스너를 ActionBar로 설정하는 방법
이 내 전체 기능입니다 :
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_clubs_pagesn, container, false);
// Initilization
viewPager = (ViewPager) v.findViewById(R.id.pager);
actionBar = getActivity().getActionBar();
mAdapter = new TabsPagerAdapter(getFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
//actionBar.setNavigationMode(ActionBarNAVIGATION_MODE_STANDARD);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener((android.app.ActionBar.TabListener) actionBar)); }
/**
* on swiping the viewpager make respective tab selected
* */
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
return v;
}
덕분에, 그러나 나의 조각은 이미 ActionBar.TabListener –
그래서'.setTabListener (YourFragment을 사용하여 구현합니다. 이); – mmlooloo