3

ViewFlipper を使用したアクティビティ (android.support.v4.app.FragmentActivity) があり、この中にいくつかのフラグメントがあります

src/com.package.WelcomeActivity.java

package com.package;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

public class WelcomeActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.welcome, menu);
        return true;
    }

}

res/layout/activity_welcome.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ViewFlipper 
        android:id="@+id/flipper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <fragment 
            android:id="@+id/flip2"
            class="com.package.fragment2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>

        <fragment 
            android:id="@+id/flip2"
            class="com.package.fragment2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
        <!-- ... -->
        <fragment 
            android:id="@+id/flipN"
            class="com.package.fragmentN"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
    </ViewFlipper>

</LinearLayout>

現在、各フラグメントは2つの市長部分で構成されています。コンテンツとアクション(戻る、続行)のユーザータブが継続アクションの場合、フラグメント内の関数を実行しますが、フラグメント内でViewFlipper.showNext()andを呼び出す方法がわかりませんViewFlipper.showPrevious()

4

1 に答える 1

3

アクティビティに任せてください。

あなたのWelcomeActivityその呼び出しViewFlipper.showNext()でパブリックメソッドを作成しViewFlipper.showPrevious、次のようにします:

public void showNextFragment() {
    mViewFlipper.showNext();
}

public void showPreviousFragment() {
    mViewFlipper.showPrevious();
}

フラグメントでは、次のようにアクティビティのメソッドを呼び出すことができます。

WelcomeActivity parent = (WelcomeActivity) getActivity();
parent.showNextFragment();
// or parent.showPreviousFragment();

ここにコードを入力しただけで、試していません。タイプミスがある可能性があるため、単にコピーして貼り付けないでください。しかし、それが私の主張をうまく説明していることを願っています。

于 2013-03-20T15:47:35.563 に答える