2017-07-29 4 views
-1

PagerAdapterを使用して2つのImageViewをスワイプしても問題ありません。ギャラリーにはたくさんの人がいて、個別の名前/説明(ID:speaker_name)を追加したいと思っています。私が仕事をしなければならないのは、それらのすべてについて同じ記述です。私はこれを絶対に新しくしています。私は今それを働かせるために一日苦労しています。私が見つけたすべてのソリューションは、フラグメントやOnPageChangeListenerを使用していましたが、実装方法を理解できませんでした。PagerAdapterスワイプ時のTextViewの変更

これは私が持っているものです:

<?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>` 

PagerAdapter:

public class ImageAdapter extends PagerAdapter { 

SpeakerActivity sa; 
Context context; 
int i = 0; 

public int[] GalImages = new int[] { 
     R.drawable.ben, 
     R.drawable.brett, 
     R.drawable.mark, 
     R.drawable.dusan, 
     R.drawable.michael, 
     R.drawable.mike, 
     R.drawable.ollie, 
     R.drawable.rebecca, 
     R.drawable.sebastian, 
     R.drawable.thomas, 
     R.drawable.tomasz, 
     R.drawable.toni, 
}; 
ImageAdapter(Context context){ 
    this.context=context; 
} 
@Override 
public int getCount() { 
    return GalImages.length; 
} 

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

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imageView = new ImageView(context); 
    int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium); 
    imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    imageView.setImageResource(GalImages[position]); 
    ((ViewPager) container).addView(imageView, 0); 
    return imageView; 
} 

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

活動:

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); 
} 
} 
+0

へようこそ!良い質問をするには、この投稿をチェックしてください:https://stackoverflow.com/help/how-to-ask。この場合、どのようなエラーが発生しているか教えてください。 –

答えて

1

をあなたはOnCreate関数の内部でこれを行うことができますスワイプするときのTextViewのテキストを変更するには()方法:

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) { 

       } 

      }); 

これは、ビューページの実装ですOnPageChangeListener()私にとって最善の方法です。

+0

私はあなたを愛して<3ありがとう! – BCuracao

0

は、私はあなたに活動レイアウトがにバインドされていることの基本的な考え方

  1. ViewPagerを与えてみましょう。
  2. ViewPager/FragmentPagerを拡張するImageAdapterは、基本的にビューページまたはビューにフラグメントを追加して、アクティビティで表示できるようにします。
  3. アクティビティは、ビューページャのアダプタをImageAdapterに設定することによって2つのオブジェクトを接続します。 #2で述べたように、ViewPagerを実装する方法はたくさんあります。そこには多くのサイトがあります。 を参照してくださいhttps://www.bignerdranch.com/ それは非常に詳細に説明します
関連する問題