Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在单击按钮时从微调器获取下一个/上一个项目?_Android - Fatal编程技术网

Android 如何在单击按钮时从微调器获取下一个/上一个项目?

Android 如何在单击按钮时从微调器获取下一个/上一个项目?,android,Android,我正在尝试实现类似这样的东西 微调器包含我使用数组适配器填充的项目列表 单击按钮时,我希望根据单击的按钮将微调器的选定项目更改为下一个/上一个项目。有可能吗?我使用微调器是因为我必须根据微调器中选择的项目填充上面的列表视图 我可以使用旋转器和按钮以外的其他工具吗 关于。使用: pirvate Spinner mySpinner; private int ItemPosition; private Button ButtonNext; private Button ButtonPrevious;

我正在尝试实现类似这样的东西

微调器包含我使用数组适配器填充的项目列表

单击按钮时,我希望根据单击的按钮将微调器的选定项目更改为下一个/上一个项目。有可能吗?我使用微调器是因为我必须根据微调器中选择的项目填充上面的列表视图

我可以使用旋转器和按钮以外的其他工具吗

关于。

使用:

pirvate Spinner mySpinner;
private int ItemPosition;
private Button ButtonNext;
private Button ButtonPrevious;
在你的简历中:

还有你的按钮:

ButtonNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mySpinner.setSelection(mySpinner.getItemAtPosition(ItemPosition++));
    }
});

ButtonPrevious.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mySpinner.setSelection(mySpinner.getItemAtPosition(ItemPosition--));
    }
});
使用:

在你的简历中:

还有你的按钮:

ButtonNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mySpinner.setSelection(mySpinner.getItemAtPosition(ItemPosition++));
    }
});

ButtonPrevious.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mySpinner.setSelection(mySpinner.getItemAtPosition(ItemPosition--));
    }
});

您可以做的是获取当前项在微调器中显示的位置

然后在返回按钮的onclick事件中 这个检查很重要,因为若微调器显示元素为零,你们按下后退按钮,那个么点将为-1;并将给予例外

 forward_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int position = mySpn.getSelectedItemPosition();
            if(position>0){
            position=position-1;
            mySpn.setSelection(position);

      }


        }
    });
 }
previous_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

                 int position = mySpn.getSelectedItemPosition();
                 if(position<your_list.size()){
                 position=position+1;
                 mySpn.setSelection(position);

             }

        }
    });
}
在向前按钮的onclick事件中

下面的检查是否重要,因为若您的位置大于在微调器中显示的arraylist的大小,那个么它也会给出异常

 forward_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int position = mySpn.getSelectedItemPosition();
            if(position>0){
            position=position-1;
            mySpn.setSelection(position);

      }


        }
    });
 }
previous_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

                 int position = mySpn.getSelectedItemPosition();
                 if(position<your_list.size()){
                 position=position+1;
                 mySpn.setSelection(position);

             }

        }
    });
}

您可以做的是获取当前项在微调器中显示的位置

然后在返回按钮的onclick事件中 这个检查很重要,因为若微调器显示元素为零,你们按下后退按钮,那个么点将为-1;并将给予例外

 forward_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int position = mySpn.getSelectedItemPosition();
            if(position>0){
            position=position-1;
            mySpn.setSelection(position);

      }


        }
    });
 }
previous_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

                 int position = mySpn.getSelectedItemPosition();
                 if(position<your_list.size()){
                 position=position+1;
                 mySpn.setSelection(position);

             }

        }
    });
}
在向前按钮的onclick事件中

下面的检查是否重要,因为若您的位置大于在微调器中显示的arraylist的大小,那个么它也会给出异常

 forward_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int position = mySpn.getSelectedItemPosition();
            if(position>0){
            position=position-1;
            mySpn.setSelection(position);

      }


        }
    });
 }
previous_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

                 int position = mySpn.getSelectedItemPosition();
                 if(position<your_list.size()){
                 position=position+1;
                 mySpn.setSelection(position);

             }

        }
    });
}

您是否只需要日期,然后不需要传递列表。只需使用日历对象。在这种情况下,我为您的问题提供了一个简单而非常小的解决方案,它可以精确地生成您想要的结果。微调器有一个默认方法,即SetSelectionIt position。你可以在下一个和上一个按钮上使用此方法。我不认为我可以使用日历,因为我是从JSON中获取这些日期的。@海森堡,那么Strider的答案对我们来说是好的。其他微调项是连续的日期吗?或者它们的值是由您定义的,比如相隔一周的日期吗?您是否只想要日期,而不需要传递列表。只需使用Calendar对象。在这种情况下,我有一个简单且非常小的解决方案对于您的prob,它可以精确地生成所需的结果。微调器有一个默认方法,即SetSelectionIt position。您可以在“下一个”和“上一个”按钮上使用此方法。我不认为我可以使用日历,因为我是从JSON获取这些日期。@海森堡那么Strider的答案对我们来说是很好的。其他微调器项是连续的日期吗?或者它们是由您定义的值,比如相隔一周的日期吗?谢谢。还有一个问题。当我通过单击按钮更改项目时,所选项目是否有效?谢谢。还有一个问题。当我通过点击按钮更改项目时,所选选项是否有效?谢谢您提供关于-1的信息。我还没有开始编码,但知道这一点肯定会节省我很多时间。非常感谢可能的bug:position感谢您提供关于-1的信息。我还没有开始编码,但知道这一点肯定会节省我很多时间。许多可能的错误:位置