![](/img/trans.png)
[英]How can I save the state and value of button press between views in a viewpager?
[英]How can I show a button when all views are viewed in viewpager?
现在,我有一个保存按钮,仅在显示viewpager内部的所有视图时才显示。 这意味着,当用户在视图之间滑动并查看viewpager中的所有视图时,将显示一个保存按钮。
我想在以后查看所有视图时在每个视图上显示“保存”按钮。
我遇到的麻烦是如何设置逻辑。 我首先将保存按钮设置为不可见,直到viewpager的最后一个视图为止。 在viewpager的最后一个视图上,显示“保存”按钮。 但是问题是,当用户转到最后一个视图(有一个保存按钮),然后又回到上一个视图时,保存按钮消失了。
因此,我想知道在用户查看所有视图之后如何在所有视图上永久显示保存按钮?
这是我到目前为止的内容:
我的InstantiateItem()中有此代码段:
if(isViewed)
{
save_button.setVisibility(Button.VISIBLE);
System.out.println("Is this called? isViewed = true");
}else if (position == numberOfPages.size()-1) {
isViewed = true;
save_button.setVisibility(Button.VISIBLE);
}
哪里
@Override
public void onPageSelected(int position) {
isViewed = true;
}
编辑:
我尝试了以下解决方案,但是没有运气。
Button save_button = (Button) findViewById(R.id.save);
if(isViewed[position])
{
save_button.setVisibility(Button.VISIBLE);
}
if (position == numberOfPages.length-1 && !isViewed[position]) {
isViewed[position] = true;
save_button.setVisibility(Button.VISIBLE);
}
isViewed[position] =true;
和
isViewed[position] = true;
if (isViewed[position] == isViewed[numberOfPages.length-1]) {
save_button.setVisibility(Button.VISIBLE);
}
if (isViewed[position]) {
save_button.setVisibility(Button.VISIBLE);
} else {
save_button.setVisibility(Button.INVISIBLE);
}
boolean []isViewed = new boolean[noOfPages.size()];
@Override
public void onPageSelected(int position) {
if(isViewed[position])
{
save_button.setVisibility(Button.VISIBLE);
}
else {
save_button.setVisibility(Button.GONE);
}
isViewed[position] = true;
}
在您的onPageSelected
,执行以下操作
if(isViewed)
{
save_button.setVisibility(Button.VISIBLE);
}
if (position == numberOfPages.size()-1) {
isViewed = true;
save_button.setVisibility(Button.VISIBLE);
}
注意,上面是两个单独的if语句。
使您的isViewed
全局,默认为false
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.