我试图实现看起来像这样的东西。
微调器包含我使用数组适配器填充的项目列表。
按下按钮我想根据点击的按钮将微调器的所选项目更改为下一个/上一个项目。有可能吗?我正在使用微调器,因为我要填充上面的ListView,具体取决于微调器中选择的项目。
为此,我可以使用除微调器和按钮以外的其他东西吗?
问候。
答案 0 :(得分:5)
使用:
pirvate Spinner mySpinner;
private int ItemPosition;
private Button ButtonNext;
private Button ButtonPrevious;
在onResume()
:
ItemPosition = mySpinner.getSelectedItemPosition();
和你的按钮:
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--));
}
});
答案 1 :(得分:2)
你可以做的是获取当前项目在微调器中显示的位置
然后在后退按钮的onclick事件中 这个检查很重要,如果微调器显示元素为零,你按回按钮然后poition将为-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);
}
}
});
}
并在前进按钮的onclick事件中
如果检查是重要的,如果你的位置大于你在旋转器中显示的arraylist的大小,那么它也会给出例外。
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);
}
}
});
}