このリンクをたどって ViewPager http://blog.stylingandroid.com/archives/537 を実行しています。さまざまなページを取得できました。しかし、これらのページにボタンを追加するにはどうすればよいでしょうか?
instantiateItem()
これにより、特定の位置のビューが作成されます。実際のアプリケーションでは、ここで Fragment を使用するか、レイアウトをインフレートしますが、例を単純にするために、TextView を作成し、titles 配列からテキストを正しい値に設定し、それを ViewPager に追加します。
異なるページに異なるボタン機能を持たせたい。どうすればこれを行うことができますか?別のレイアウトを使用して?ページ内にレイアウトを配置するにはどうすればよいですか (これはインフレと呼ばれるものですか)。
編集: ViewPager で構成される main.xml があります
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
ViewPage のさまざまなページに膨らませたいボタンで構成される他のいくつかの xml があります。xml の例。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button android:layout_width="match_parent" android:text="Button 1" android:onClick="onClick" android:id="@+id/button1" android:layout_height="100dp"></Button>
<Button android:text="Button 2" android:onClick="onClick" android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="100dp"></Button>
<Button android:text="Button 3" android:onClick="onClick" android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="100dp"></Button>
<Button android:text="Button 4" android:onClick="onClick" android:id="@+id/button4" android:layout_width="match_parent" android:layout_height="100dp"></Button>
<Button android:text="Button 5" android:onClick="onClick" android:id="@+id/button5" android:layout_height="match_parent" android:layout_width="match_parent"></Button>
</LinearLayout>
ViewPagerAdapter.java では、さまざまな XML をページにインフレートすることができました。
@Override
public Object instantiateItem( View pager, int position )
{
//Inflate the correct layout
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//layouts[] is an int[] that points to resources such as R.layout.start_page
View inflatedView = layoutInflater.inflate(layouts[position], null);
((ViewPager)pager).addView(inflatedView,0);
return inflatedView;
}
そして、これはエラーを防ぐために変更する必要があります。
@Override
public void destroyItem( View pager, int position, Object view )
{
((ViewPager)pager).removeView( (View)view );
}
現在、さまざまなページに複数のボタンがあります。異なるページの異なるボタンの ONCLICK 機能をプログラムするにはどうすればよいですか? これは機能しますか?
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// do something
break;
case R.id.button2:
// do something
break;
case R.id.button3:
// do something
break;
case R.id.button4:
// do something
break;
case R.id.button5:
// do something
break;
}
}