Android - ViewFlipper问题

时间:2011-09-22 12:23:34

标签: java android xml viewflipper

我正在制作一个需要在Activity中有多个视图的游戏,我决定使用Viewflipper来做。

事情是这样的。我需要在viewflipper中有3个视图,LAST视图将转移回第一个视图。

我的问题是按钮表现得很奇怪,它们要么不会转到下一个按钮,要么跳过第三个视图。我试着把vf.setDisplayedChild(R.Id.gamescreen1);在最后一个视图,然后整个事情崩溃了。

提前感谢所有答案,我一直坚持这个问题为DAYS!是的,我知道我是一个菜鸟:(

[源码]     公共类GameActivity扩展了Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_game);


    final ViewFlipper vf = (ViewFlipper) findViewById(R.id.ViewFlipper01);

    //SCREEN 1

    Button btnSTART = (Button) findViewById(R.id.btnSTART);

    //SCREEN 2

    Button btnALT1 = (Button) findViewById(R.id.btnALT1);
Button btnALT2 = (Button) findViewById(R.id.btnALT1);        

    //SCREEN 3

    Button btnALT3 = (Button) findViewById(R.id.btnALT1);
Button btnALT4 = (Button) findViewById(R.id.btnALT1);

//screen 1

    btnSTART.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            vf.showNext();
        }        
    });

//screen 2 // Either button will go to view 3

    btnALT1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            vf.showNext();
        }        
    });

btnALT2.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            vf.showNext();
        }        
    });


//screen 3 // Either button will go back to view 1

    btnALT3.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            vf.showNext();

        }        
    });

    btnALT4.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            vf.showNext();
        }        
    });
}
}

[XML]     

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gamescreen1" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:layout_height="435dp" android:gravity="top">
        <ListView android:layout_width="fill_parent" android:id="@+id/list1" android:layout_height="184dp" android:layout_weight="0.53"></ListView>
    </LinearLayout>

    <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:gravity="bottom|center" android:layout_height="wrap_content">
        <Button android:layout_height="wrap_content" android:id="@+id/btnSTART" android:layout_width="200dp" android:text="@string/btnstart"></Button>
    </LinearLayout>

</LinearLayout>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gamescreen2" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:weightSum="1" android:gravity="top" android:layout_height="326dp">
        <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/list2"></ListView>
    </LinearLayout>

    <LinearLayout android:orientation="vertical" android:gravity="bottom|center" android:layout_width="match_parent" android:layout_height="match_parent">
        <Button android:text="alt1" android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/btnALT1"></Button>
        <Button android:text="alt2" android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/btnALT2"></Button>

    </LinearLayout>

</LinearLayout>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gamescreen3" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">

    <LinearLayout android:layout_width="match_parent" android:orientation="vertical" android:weightSum="1" android:gravity="top" android:layout_height="326dp">
    </LinearLayout>

    <LinearLayout android:orientation="vertical" android:gravity="bottom|center" android:layout_width="match_parent" android:layout_height="match_parent">
        <Button android:text="alt3" android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/btnALT3"></Button>
        <Button android:text="alt4" android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/btnALT4"></Button>
    </LinearLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

试试这个

flipper.setDisplayedChild(1);
.
.to
.
flipper.setDisplayedChild(3);

if(flipper.getCurrentView() == 3)
{
    flipper.setDisplayedChild(1);
}

答案 1 :(得分:0)

setDisplayChild采用一个整数参数,该参数是子项的从零开始的索引,以显示NOT要显示的子项的id。我知道有点混乱。