2012-12-09 73 views
3

我正在使用ViewPageIndicator并尝试在我们滚动到下一个分段页面时使用Toast显示。类型Toast中的方法makeText不适用于参数

我收到他以下错误

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (PlaceDetailsFragment, String, int) 

PlaceDetailsFragment.java

public class PlaceDetailsFragment extends SherlockFragment { 
    ImageFragmentAdapter mAdapter; 
    ViewPager mPager; 
    PageIndicator mIndicator; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_place_details, container, 
       false); 

     mAdapter = new ImageFragmentAdapter(getActivity() 
       .getSupportFragmentManager()); 

     mPager = (ViewPager) view.findViewById(R.id.pager); 
     mPager.setAdapter(mAdapter); 

     mIndicator = (CirclePageIndicator) view.findViewById(R.id.indicator); 
     mIndicator.setViewPager(mPager); 
     ((CirclePageIndicator) mIndicator).setSnap(true); 

     mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       Toast.makeText(PlaceDetailsFragment.this, "Changed to page " + position, Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 
      } 
     }); 
     return view; 
    } 

} 

回答

14

碎片不会延伸范围内。您必须让活动作为上下文传递。

Toast.makeText(PlaceDetailsFragment.this.getActivity(), "Changed to page " + position, Toast.LENGTH_SHORT).show(); 
+1

感谢。工作:D –

+0

该死的仍然不能接受答案:P –

1

PearsonArtFoto已经给了你答案,但我想补充一些信息: 你必须使用getActivity(),因为你没有调用这个(扩展活动或东西)的活动中。活动是一个上下文(它扩展了上下文),而不是片段。片段的

+0

谢谢艾哈迈德... –

0

使用容器参数

Toast.makeText(container.getContext(), picture, Toast.LENGTH_LONG).show(); 
相关问题