0

フラグメントとViewPagerを使用してイントロスライダー画面を作成しようとしています。 onCreateViewメソッドに複数のレイアウトを表示したいのですが、その方法はわかりません。onCreateViewメソッドで複数のレイアウトを表示する方法

お願いします。

主な活動

public class MainActivity extends AppCompatActivity { 
    public ViewPager pager; 
    public The_fragment_adapter the_fragment_adapter; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     pager = (ViewPager) findViewById(R.id.pager); 
     the_fragment_adapter = new The_fragment_adapter(getSupportFragmentManager()); 
     pager.setAdapter(the_fragment_adapter); 
    } 
} 

断片クラス

public class The_fragment extends Fragment { 

    public The_fragment(){ 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View my_view=inflater.inflate(R.layout.theui,container,false); 
     return my_view; 
    } 
} 

アダプタビュー

public class The_fragment_adapter extends FragmentStatePagerAdapter { 

    public int[] the_layouts = {R.layout.page1,R.layout.page2}; 

    public The_fragment_adapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return new The_fragment(); 
    } 

    @Override 
    public int getCount() { 
     return the_layouts.length; 
    } 
} 
+1

複数のレイアウトではどういう意味ですか? –

+0

今、onCreateViewメソッドでは1つのレイアウト、つまりtheuiが表示されていますが、2つの異なるレイアウトを表示し、それら2つのレイアウトのスライダを作成したいとします。 – Junaid

答えて

0

ViewPagerはレイアウトではなく複数のフラグメントをページングするためのものです。 getItem()メソッドは、必要な位置に必要なフラグメントを返します。

したいレイアウトを持つ第2のフラグメントを作成:あなたのアダプタのメソッドを変更すると

public Fragment The_second_fragment extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View my_view=inflater.inflate(R.layout.page2,container,false); 
     return my_view; 
    } 
} 

を:

@Override 
public Fragment getItem(int position) { 
    switch 0: 
     return new The_fragment(); 
    switch 1: 
     return new The_second_fragment(); 
} 

@Override 
public int getCount() { 
    return 2; 
} 

は、優れたtutorial in the Android Developer's Guideを参照してください。そして、将来的にはJava naming conventionsに従うと、他のプログラマーがあなたのコードをより簡単に理解できるようになるので、より良い答えを得る可能性が高くなります。

+0

ありがとうございました。これで終わりました。今は、それらのフラグメントを使用した後でそれらのフラグメントを殺したいだけです。finish()を使用しようとしています。メソッドが動作していません。 – Junaid

+0

フラグメントを手動で削除する必要はありません。彼らはあなたの活動が破壊されたときに殺されます。 –

+0

私は別のアクティビティを入れて、2番目のフラグメントのボタンを使ってアクセスしようとしました。そのアクティビティにいるときに戻るボタンを押すと、フラグメントに戻ってきます – Junaid