Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PagerAdapter在刷卡时更改文本视图_Android_Android Pageradapter - Fatal编程技术网

Android PagerAdapter在刷卡时更改文本视图

Android PagerAdapter在刷卡时更改文本视图,android,android-pageradapter,Android,Android Pageradapter,我用PagerAdapter浏览了几个图像视图,效果非常好。我有一群人在画廊里,我想为他们添加一个个人姓名/描述(id:speaker_name)。我所要做的就是对他们的描述都是一样的。我对这一点完全陌生,我现在正在努力一天让它发挥作用。我找到的所有解决方案都使用了片段或OnPageChangeListener,但我不知道如何实现它 这就是我得到的: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns

我用PagerAdapter浏览了几个图像视图,效果非常好。我有一群人在画廊里,我想为他们添加一个个人姓名/描述(id:speaker_name)。我所要做的就是对他们的描述都是一样的。我对这一点完全陌生,我现在正在努力一天让它发挥作用。我找到的所有解决方案都使用了片段或OnPageChangeListener,但我不知道如何实现它

这就是我得到的:

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true">

            <android.support.v4.view.ViewPager
                android:id="@+id/view_pager"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/basicBackground">
            </android.support.v4.view.ViewPager>

            <TextView
                android:id="@+id/speaker_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="50sp"
                android:text="The Name"
                android:textAlignment="center"
                android:textColor="@android:color/white"
                android:textSize="30sp" />
        </FrameLayout>
    </RelativeLayout>`
活动:

public class SpeakerActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.speaker_activity);

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    ImageAdapter adapter = new ImageAdapter(this);
    viewPager.setAdapter(adapter);
}
}

要在刷卡时更改文本视图文本,可以在oncreate()方法中执行此操作:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

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

                }

                @Override
                public void onPageSelected(int position) {
                    switch (position){
                        case 0:
                             //Do stuff
                            textview.setText("Ben");
                            break;
                        case 1:
                            //Do stuff
                            textview.setText("Brett");
                            break;
                     //Add other cases for the pages

                    }

                }

                @Override
                public void onPageScrollStateChanged(int state) {

                }

            });

这是实现viewpagerOnPageChangeListener()对我来说最好的方法。

让我给你一个基本的想法

  • 活动布局绑定到的ViewPager
  • ImageAdapter,它扩展了ViewPager/FragmentPager,基本上将视图或片段添加到ViewPager中,以便活动可以向您显示它
  • 该活动通过将viewpager的适配器设置为ImageAdapter来连接这两个对象 正如我在#2中所说的,有很多方法可以实现ViewPager——有很多网站。 提到 它解释得非常详细

  • 欢迎来到SO!查看这篇关于如何提出一个好问题的帖子:。在这种情况下,我想你需要告诉我们你犯了什么错误。我爱你
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    
                    @Override
                    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
                    }
    
                    @Override
                    public void onPageSelected(int position) {
                        switch (position){
                            case 0:
                                 //Do stuff
                                textview.setText("Ben");
                                break;
                            case 1:
                                //Do stuff
                                textview.setText("Brett");
                                break;
                         //Add other cases for the pages
    
                        }
    
                    }
    
                    @Override
                    public void onPageScrollStateChanged(int state) {
    
                    }
    
                });