Android - проблема с ViewFlipper - PullRequest
       1

Android - проблема с ViewFlipper

0 голосов
/ 22 сентября 2011

Я делаю игру, которая требует нескольких представлений в Деятельности, и я решил использовать Viewflipper для этого.

Дело в том.Мне нужно иметь 3 вида в видоискателе, и последний вид вернется к первому.

Моя проблема в том, что кнопки работают странно, и они либо не переходят к следующему, либо пропускают третий вид.Я пытался поставить vf.setDisplayedChild (R.Id.gamescreen1);на последнем взгляде, но потом все рушится.

Спасибо за все ответы заранее, я застрял с этой проблемой в течение ДНЕЙ!и да, я знаю, что я нуб: (

[SOURCECODE] публичный класс GameActivity расширяет действие {

/** 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 ]

1 голос
/ 22 сентября 2011

попробуйте

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

if(flipper.getCurrentView() == 3)
{
    flipper.setDisplayedChild(1);
}
0 голосов
/ 19 сентября 2014

setDisplayChild принимает целочисленный параметр, который является нулевым индексом дочернего элемента для отображения НЕ идентификатора дочернего элемента для отображения.Немного смущает, я знаю.

...