我试图做一个有一个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>
答案 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
}
});
}