2016-10-19 22 views
3

私はAndroid API 16で次のことを達成しようとしています: 2画面でスワイプしたいと思っています。今のところ、ログインアクティビティはトーストを表示します。
画面1 - > Screen2に - 私は断片だけでなく、ViewPagerを使用し、画面2に、画面1からスワイプするために管理している>スタート活性(例えば、ログイン/登録画面)スワイプビューでアクティビティを開始

はしかし、私はどのようで立ち往生していますこれを超えて進む

私はアクティビティを開始するためにインテントを使用しました。これにより、トランジション画面1 - > 2は表示されませんが、ログイン画面からトーストメッセージが表示されます。私は意図をどこに置くか、あるいは私がこれを正しい方法でやっているのかどうかはわかりません。

私はこれにどのようにアプローチしますか?どんなアイデアや提案も大歓迎です。

+0

コードを投稿できますか? – sasikumar

+0

ViewPagerは、アクティビティではなくフラグメントまたはビューを表示します。あなたはそのためにインテントを使用しません。ビューページャーでPagerAdapter –

+1

Make 3フラグメントを使用します。 3ページ目を完全にスワイプした後(onPageSelected()メソッド)、onPageSelectedメソッドでアクティビティを呼び出します。 –

答えて

1

コードに続く第3および使用されます別のフラグメント行います。その後、カスタマーにViewpagerを置き換えるビューにカスタムクラスを作成した後

pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

     } 

     @Override 
     public void onPageSelected(int position) { 
      if(position==2) 
      { 
       //call activity 
      } 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 
+1

ありがとうございます。私はあなたとAlexiの提案を使用しましたが、それはかなり簡単でした。 –

0

がビューページャ

import android.content.Context; 
import android.support.v4.view.MotionEventCompat; 
import android.support.v4.view.ViewPager; 
import android.util.AttributeSet; 
import android.view.MotionEvent; 


public class CustomViewPager extends ViewPager { 

    float mStartDragX; 
    OnSwipeOutListener mListener; 

    public CustomViewPager(Context context) { 
     super(context); 
    } 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 


    public void setOnSwipeOutListener(OnSwipeOutListener listener) { 
     mListener = listener; 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev){ 
     if(getCurrentItem()==getAdapter().getCount()-1){ 
      final int action = ev.getAction(); 
      float x = ev.getX(); 
      switch(action & MotionEventCompat.ACTION_MASK){ 
       case MotionEvent.ACTION_DOWN: 
        mStartDragX = x; 
        break; 
       case MotionEvent.ACTION_MOVE: 
        break; 
       case MotionEvent.ACTION_UP: 
        if (x<mStartDragX){ 
         mListener.onSwipeOutAtEnd(); 
        }else{ 
         mStartDragX = 0; 
        } 
        break; 
      } 
     }else{ 
      mStartDragX=0; 
     } 
     return super.onTouchEvent(ev); 
    } 
    public interface OnSwipeOutListener { 
     public void onSwipeOutAtEnd(); 
    } 

} 

の次のカスタムクラスの代替を使用してくださいViewPagerのように次のように

<com.examples.activity.CustomViewPager     android:id="@+id/pager" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/rcTemp" 
       android:layout_alignLeft="@+id/rcTemp" 
       android:layout_alignRight="@+id/rcTemp" 
       android:layout_alignTop="@id/rcTemp" 
       android:layout_below="@+id/rcTemp" /> 

mPager = (CustomViewPager) findViewById(R.id.pager); 
     mPager.setOnSwipeOutListener(new CustomViewPager.OnSwipeOutListener() { 

      @Override 
      public void onSwipeOutAtEnd() { 
       Log.d("callledby me","yes"); 
      } 
     }); 
1

まず、次のように)CustomeviewPagerとオーバーライドメソッドonSwipeOutListener(として初期化する第三の一つは目に見えて到達することはありませんが3つの断片とビューページャを作成します。次に、ビュー・ページャーを含むアクティビティーで、以下のリスナーを実装します。私はちょうどあなたが は私が間違って

だ場合、私はあなたの要件が に似ていると思う私を修正してください欲しいものguesしようとしています

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
      if (position == 2){ 
       // Create the intent to launch the login screen. 
      Intent intent = new Intent(mActivity.this, mLoginActivity.this); 
      startActivity(intent); 
      } 
     } 

     @Override 
     public void onPageSelected(int position) { 
      // If your view pager has tabs you will need to create the intent here as well. 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 
+0

Alexiに感謝します。私はあなたの提案を使用し、それは正常に働いた。 –

+0

私は答えを受け入れましたが、私の評判が15未満(登録したばかり)のため、表示されません。 –

+0

ありがとう、私は理解しています。とても有難い。 –

0

は、ユーザーが初めてアプリになると、その後に彼をリダイレクトするいくつかのスライドを表示しますログインまたは登録 xenderや他のアプリケーションと同じです

私はスライドを表示してログインを開く/登録アクティビティ を使用していると思いますが、あなたの質問はログイン/登録アクティビティを開くときです。

ログイン/登録アクティビティに進むには、あなたのセカンドスライド/ページにボタンを置くべきだと思います。

私は彼が、彼はあなたがボタンやユーザーを入れたいいけない場合はスライド

後に別のアクティビティに行くために彼の最後の画面で、スタート>ボタンを持っている ことをやっているかapplicatin xenderの例のスクリーンショットを添付している

他のソリューション

enter image description hereenter image description here

enter image description hereenter image description here

に行くためにokですよりも、第2のスクリーン で右にスワイプして登録/ログインするに行きたいです
関連する問題