在数组中存储seekbar值

时间:2015-08-11 03:47:43

标签: android arrays radio-button android-seekbar

我想存储用户通过在数组中拖动拇指来选择的搜索栏值

2 个答案:

答案 0 :(得分:0)

您可以这样做:

private ArrayList<Seekbar> mSeekbars = new ArrayList<Seekbar>();

@Override
protected void onCreate(Bundle savedInstanceState) {
// Your code where you set the content view
mSeekbars.add(((Seekbar) findViewById(R.id.seekbar1));
mSeekbars.add(((Seekbar) findViewById(R.id.seekbar2));
mSeekbars.add(((Seekbar) findViewById(R.id.seekbar3));
}

// To enable seekbars
private void onRadioButtonSelected() {
for (Seekbar seekbar : mSeekbars) {
seekbar.setEnabled(true);
}
}

// To get seekbar values
private ArrayList<Integer> saveSeekbarValues() {
ArrayList<Integer> values = new ArrayList<Integer>();
   for (Seekbar seekbar : mSeekbars) {
      values.add(seekbar.getProgress())
    }
return values;
}

}

另一个解决方案是拥有一个包含所有搜索栏的父布局,并启用/禁用该布局,而不是启用/禁用单个搜索栏。但是,对于值,您必须手动检索每个搜索条的值。

答案 1 :(得分:0)

您可以将所有搜索栏放在单个视图中,并使用迭代逐个获取,并使用setEnable(): -

    // to enable seekbars

    public void enableAllSeekBars()
    {
        int childcount = containerView.getChildCount();
        for (int i=0; i < childcount; i++){
              if(containerView.getChildAt(i) instanceof SeekBar)
              {
                 SeekBar sb = (SeekBar)containerView.getChildAt(i);
                 sb.setEnabled(true);
              }
          }
    }


    // to get seekbar values

    public ArrayList<Integer> getSeekBarValues()
    {
      ArrayList<Integer> values = new ArrayList<Integer>();
      int childcount = containerView.getChildCount();
      for (int i=0; i < childcount; i++){
              if(containerView.getChildAt(i) instanceof SeekBar)
              {
                 SeekBar sb = (SeekBar)containerView.getChildAt(i);
                 values.add(sb.getProgress())
              }
      }

    return values;
    }