(ViewFlipper)禁用上一个视图中的下一个按钮?

时间:2013-11-14 08:25:10

标签: android viewflipper

我试图做一个有一个ViewFlipper和下一个按钮的测验应用程序,我想要禁用下一个按钮或让它做其他命令,比如在最后一个视图时启动一个新活动,是可能吗?

Java文件

    Button Result = (Button) findViewById(R.id.Button);
    Button Next= (Button) findViewById(R.id.Next);
    ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);

    if(flipp.getDisplayedChild() == flipp.getChildCount()){
       Next.setText("Result");
    }
    Next.setOnClickListener(new View.OnClickListener() {
        ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);
        @Override

        public void onClick(View view) {
            if(Next.getText().equals("Result")){
                finalResult();
                ResultC = 0;
                ResultW = 0;
            }else{flipp.showNext();};
        }
    });

xml文件

<ViewFlipper
    android:id="@+id/flipp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
<LinearLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">
<TextView
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:gravity="right"
    android:layout_marginTop="20dp"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="30dp"
    android:textSize="18sp"
    android:text="Q1"/>
    </LinearLayout>

  <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="vertical">
    <TextView
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:gravity="right"
    android:layout_marginTop="20dp"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="30dp"
    android:textSize="18sp"
    android:text="Q2"/>
    </LinearLayout>

   <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="vertical">
    <TextView
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:gravity="right"
    android:layout_marginTop="20dp"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="30dp"
    android:textSize="18sp"
    android:text="Q4"/>
    </LinearLayout>
    </ViewFlipper>

3 个答案:

答案 0 :(得分:0)

您可以使用button.setText("New label")更改按钮的文字,并在OnclickListener中按照此样式

if(!last)
{
   //your  usual code for onclick listener
}
else 
{
    // your code for the last view 
}

<强> ----- ----- EDITED

这就是我建议的方式

boolean last=false;
Button Result = (Button) findViewById(R.id.Button);
Button Next= (Button) findViewById(R.id.Next);
ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);

if(flipp.getDisplayedChild() == flipp.getChildCount()){
   Next.setText("Result");
   last=true;
}
Next.setOnClickListener(new View.OnClickListener() {
    ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);
    @Override

    public void onClick(View view) {
        if(last)){
            finalResult();
            ResultC = 0;
            ResultW = 0;
        }else{flipp.showNext();};
    }
});

答案 1 :(得分:0)

按下“下一步”按钮时,可以检查.getDisplayedChild()== .getChildCount()。如果它是真的你已经到达最后一张幻灯片,你可以运行其他命令。

答案 2 :(得分:0)

try this one


if (flipper.indexOfChild(flipper.getCurrentView()) == flipper.getChildCount()){

  button.settext("Start New Quiz");

}

  button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                              if(button.gettext.equals("Start New Quiz")){
                Intent in = new Intent(getApplicationContext(),
                        DashBoardClass.class);

                startActivity(in);

                 }else{

                   //do what you want here 
            }
        });

}