View view = getActivity() - 无法解析方法

时间:2016-02-20 02:58:24

标签: java android android-fragments

我是Android新手。我正在通过例子做程序。

中有错误
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);
    }
}

1 个答案:

答案 0 :(得分:0)

您需要获得布局填充。如果类没有扩展Activity类

,则getActivity()将不起作用
    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));