Android 使用滑动视图制作操作栏?

Android 使用滑动视图制作操作栏?,android,swipeview,Android,Swipeview,在android编程方面,我几乎是一个新手,我想知道如何制作一个具有滑动视图的actionbar 我的代码: 错误 Unknown entity 'ViewPager' on line 11 Unknown entity 'ViewPager' on line 21 Unknown type of field 'mViewPager' on line 21 Unknown type of field 'mViewPager' on line 22 Unknown method on line 2

在android编程方面,我几乎是一个新手,我想知道如何制作一个具有滑动视图的actionbar

我的代码:

错误

Unknown entity 'ViewPager' on line 11
Unknown entity 'ViewPager' on line 21
Unknown type of field 'mViewPager' on line 21
Unknown type of field 'mViewPager' on line 22
Unknown method on line 22
Unknown entity 'ViewPager' on line 23
Unknown type of field 'mViewPager' on line 34
Unknown mrthod on line 34
如何修复这些错误

编辑:错误现在消失了,但我无法切换我的刷卡选项卡,只能通过单击。代码:

  • 对第一个子问题的答复:
我不知道您正在使用哪个IDE,但在Intellij中,您必须进入“模块设置”>“库”>“单击加号”>“Java”>“libs(文件夹)>android-support-v4.jar”。在Eclipse中,您可能必须转到“构建路径”>“配置构建路径”>“Java构建路径”>“添加JARs”>“libs”>android-support-v4.jar


  • 对第二项分问题的答复:
以扩展为例:

Tab1Fragment.java:

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}
Tab2Fragment.java:

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}
live.xml:

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}

主要活动(ViewPagerFragmentActivity.java):

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}
public class ViewPagerFragmentActivity扩展了FragmentActivity{
私人寻呼器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
//在传呼机上写上姓名首字母
this.initialisePaging();
}
私有void initialisePaging(){
列表片段=新向量();
add(Fragment.instantiate(这是Fragment1.class.getName());
add(Fragment.instantiate(这是Fragment2.class.getName());
this.mPagerAdapter=new PagerAdapter(super.getSupportFragmentManager(),fragments);
ViewPager pager=(ViewPager)super.findViewById(R.id.ViewPager);
pager.setAdapter(this.mPagerAdapter);
}
}
main\u activity.xml:

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}

PagerAdapter.java:

public class Tab1Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment1");

        return view;
    }
}
public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.live, container,false);
        TextView tv = (TextView) view.findViewById(R.id.status);
        tv.setText("Fragment2");

        return view;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <TextView android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:id="@+id/status"/>
</LinearLayout>
public class ViewPagerFragmentActivity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       super.setContentView(R.layout.activity_main);
       //initialsie the pager
       this.initialisePaging();
    }

    private void initialisePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

  <android.support.v4.view.ViewPager
    android:id="@+android:id/viewpager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

</LinearLayout>
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;

public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}
}
公共类PagerAdapter扩展了FragmentPagerAdapter{
私有列表片段;
公共页面编辑器(碎片管理器fm,列出碎片){
超级(fm);
this.fragments=片段;
}
@凌驾
公共片段getItem(int位置){
返回此.fragments.get(位置);
}
@凌驾
public int getCount(){
返回此.fragments.size();
}
}

检查您构建代码的API级别。我认为你必须有最低的API水平4@mocialov-boris我可能误解了你,但我检查了AndroidManifest.xml,最小sdk版本为15,目标sdl版本为16,最大sdk版本为17。水平视图分页基于API,仅适用于Android兼容包v4,版本3;这些API目前在标准Android SDK中不可用。因此,您需要将Android兼容包添加到您的Android项目中,以访问适当的API。资料来源:更多信息:我查看了一下,但我的libs文件夹中已经有了Android-support-v4.jar。我现在正在使用“AIDE”(不在家,所以在我的智能手机上为Android编写代码),我通过添加最后几个导入来消除错误,但现在当我编译应用程序时,我可以通过单击而不是滑动来切换选项卡。代码:@user2065518更新了我的答案。希望此帮助显示我是否创建自定义ViewPager?很抱歉,我真的不明白。上面的代码不是在标签之间滑动吗?由于评论,它似乎会阻止您在选项卡之间切换,因此您无法滑动?我不确定您请求的第二部分,请提出另一个so问题。我正在删除我的一部分answer@user2065518请尝试遵循以下示例: