2016-02-20 44 views
2

我是Android新手。我正在通過示例進行編程。我有一個錯誤在查看視圖= getActivity() - 無法解析方法

View view = getActivity.getLayoutInflater().inflate(R.layout.pager_item, 
       container, false); 

public class InfoFragment extends Fragment { 
    private SlidingTabLayout mSlidingTabLayout; 
    private ViewPager mViewPager; 

    public InfoFragment(){ 

    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.info_fragment,container,false); 
     return rootView; 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     // Get the ViewPager and set it's PagerAdapter so that it can display items 
     mViewPager = (ViewPager) view.findViewById(R.id.viewpager); 
     mViewPager.setAdapter(new SamplePagerAdapter()); 

     // Give the SlidingTabLayout the ViewPager, this must be 
     // done AFTER the ViewPager has had it's PagerAdapter set. 
     mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs); 
     mSlidingTabLayout.setViewPager(mViewPager); 
    } 
} 

class SamplePagerAdapter extends PagerAdapter { 


    @Override 
    public int getCount() { 
     return 10; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object o) { 
     return o == view; 
    } 


    @Override 
    public CharSequence getPageTitle(int position) { 
     return "Item " + (position + 1); 
    } 


    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     // Inflate a new layout from our resources 
     View view = getActivity.getLayoutInflater().inflate(R.layout.pager_item, 
       container, false); 
     // Add the newly created View to the ViewPager 
     container.addView(view); 

     // Retrieve a TextView from the inflated View, and update it's text 
     TextView title = (TextView) view.findViewById(R.id.item_title); 
     title.setText(String.valueOf(position + 1)); 

     // Return the View 
     return view; 
    } 


    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((View) object); 
    } 
} 
+0

getActivity()將無法​​正常工作'getActivity'是一種方法...的意思,你必須把括號就可以了,比如' getActivity()。getLayoutInflater()' –

回答

0

你需要獲得一個佈局吹氣。如果類沒有這條線擴展Activity類

import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 


public class SamplePagerAdapter extends PagerAdapter { 

private Context context; 
private LayoutInflater lInflater; 

public SamplePagerAdapter(Context context){ 
    this.context = context; 
    lInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

} 
@Override 
public int getCount() { 
    return 10; 
} 

@Override 
public boolean isViewFromObject(View view, Object o) { 
    return o == view; 
} 


@Override 
public CharSequence getPageTitle(int position) { 
    return "Item " + (position + 1); 
} 


@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    // Inflate a new layout from our resources 
    View view = lInflater.inflate(R.layout.pager_item, 
      container, false); 
    // Add the newly created View to the ViewPager 
    container.addView(view); 

    // Retrieve a TextView from the inflated View, and update it's text 
    TextView title = (TextView) view.findViewById(R.id.item_title); 
    title.setText(String.valueOf(position + 1)); 

    // Return the View 
    return view; 
} 


@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((View) object); 
} 
} 

更改爲

mViewPager.setAdapter(new SamplePagerAdapter(this));