HelpFragment에서 viewpager 기능을 사용하여 이미지를 보여주려하는데요
처음 진입시에는 잘 동작하지만 다른 fragment로 이동하여 재진입하게 되면 이미지를 띄우지 않는 페이지가 발생합니다
HelpFragment는 navigationdrawer 를 이용하여 환경 설정 fragment 진입 후 리스트 클릭 시 불려지는 fragment 입니다
또한 navigationdrawer 메뉴 아이콘을 < up아이콘으로 바꾸는게 setDisplayHomeAsUpEnabled(true) 함수로 알고 있는데
함수를 호출하여도 그대로 메뉴 아이콘으로 남아있습니다
이 두가지가 해결이 안되고 있어 힘드네요...ㅠㅠ 고수분들의 조언 부탁 드립니다
package kr.co.mycardiary;
import java.lang.reflect.Field;
import android.app.ActionBar;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
public class HelpFragment extends Fragment {
private ViewPager m_ViewPager;
private HelpPagerAdapter m_PagerAdapter;
public static HelpFragment newInstance(int pageNumber) {
HelpFragment fragment = new HelpFragment();
Bundle args = new Bundle();
args.putInt("page", pageNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_help, null);
view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Log.d("dblog", "onKey = " + keyCode);
if( keyCode == KeyEvent.KEYCODE_BACK){
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.addOnBackStackChangedListener(null);
fragmentManager.beginTransaction().replace(R.id.container, SetupFragment.newInstance()).commit();
return true;
}else{
return false;
}
}
});
ActionBar actionBar = getActivity().getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle("도움말");
m_ViewPager = (ViewPager) view.findViewById(R.id.pager);
m_PagerAdapter = new HelpPagerAdapter(getFragmentManager());
m_ViewPager.setAdapter(m_PagerAdapter);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()){
case android.R.id.home:
getActivity().finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onDetach() {
super.onDetach();
Log.d("dblog", "onDetach()");
try {
Field childFragmentManager = Fragment.class
.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
public class HelpPagerAdapter extends FragmentPagerAdapter {
public HelpPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int position) {
Log.d("mPageNumber", "getItem()" + position);
return HelpPageFragment.newInstance(position);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 7;
}
}
}
package kr.co.mycardiary;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class HelpPageFragment extends Fragment {
// private static ImageView mImageArray[] = new ImageView[7];
// private int mCnt =0;
private int mPageNumber;
public static HelpPageFragment newInstance(int pageNumber) {
HelpPageFragment fragment = new HelpPageFragment();
Bundle args = new Bundle();
args.putInt("page", pageNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// mPageNumber = getArguments().getInt("page");
mPageNumber = getArguments() != null ? getArguments().getInt("page") : 0; // 뷰페이저의 position값을 넘겨 받음
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.adaper_help, container,
false);
// mCnt = getArguments().getInt("position");
Log.d("HelpListAdapter", "PlaceholderFragment.onCreateView()===mPageNumber=======" + mPageNumber);
// mImageArray[mPageNumber] = (ImageView) rootView.findViewById(R.id.imageView);
// ((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help1);
switch (mPageNumber) {
case 0:
Log.d("position", "mPageNumber" + mPageNumber);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help1);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help1);
break;
case 1:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help2);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help2);
break;
case 2:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help3);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help3);
break;
case 3:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help4);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help4);
break;
case 4:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help5);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help5);
break;
case 5:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help6);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help6);
break;
case 6:
Log.d("position", "mPageNumber" + mPageNumber);
((ImageView) rootView.findViewById(R.id.imageView)).setBackgroundResource(R.drawable.help7);
// mImageArray[mPageNumber].setBackgroundResource(R.drawable.help7);
break;
}
return rootView;
}
}