如何将多个微调器值重置为默认值

时间:2014-01-04 12:41:56

标签: android spinner default-value

我正在构建一个拥有超过20个微调器的应用程序。我试图通过一次点击重置所有微调器。那可能吗?你能指导我如何实现这个目标吗?以下是我的代码。

如果可能,我希望从菜单中选择重置(右上角有3个点),有人可以帮助我。提前谢谢你:)

package com.example.hfacs_test09;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;


public class Unsafe extends Fragment implements OnItemSelectedListener  {

private Spinner uhs1a,uhs1b,uhs1c;
private TextView unsaferesult;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.unsafe, container, false);    

    unsaferesult = (TextView) rootView.findViewById(R.id.unsaferesult);

    uhs1a = (Spinner) rootView.findViewById(R.id.uhs1a);
    uhs1b = (Spinner) rootView.findViewById(R.id.uhs1b);
    uhs1c = (Spinner) rootView.findViewById(R.id.uhs1c);

    uhs1a.setOnItemSelectedListener(this);
    uhs1b.setOnItemSelectedListener(this);
    uhs1c.setOnItemSelectedListener(this);

    return rootView;
}

public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id){

   //uhs1a.setSelection(position);


   int r1 = Integer.valueOf((String) uhs1a.getSelectedItem());

   int r2 = Integer.valueOf((String) uhs1b.getSelectedItem());

   int r3 = Integer.valueOf((String) uhs1c.getSelectedItem());

   int total = r1 + r2 + r3;

   //int myresult = (Integer) uhs1a.getSelectedItem() ;

   unsaferesult.setText("Total Score is " + total);

 }
 public void onNothingSelected(AdapterView<?> parent) {

}
}

3 个答案:

答案 0 :(得分:8)

要将微调器重置为默认值:

uhs1a = (Spinner) rootView.findViewById(R.id.uhs1a); // Ignore this if you already did that in onCreateView 
uhs1a.setSelection(0); // Assuming the default position is 0.

要为所有微调器执行此操作,要么为每个微调器手动执行此操作,要么将所有微调器添加到ArrayList,然后

for(int i=0; i < myArrayList.size(); i++)
    myArrayList.get(i).setSelection(0);

要从菜单(3点)按钮执行此操作:

  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.your_menu_xml_file, menu);
    super.onCreateOptionsMenu(menu, inflater);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case R.id.reset_button:

        // Reset spinners here.

        return true;
      default:
        return super.onOptionsItemSelected(item);
    }
  }

答案 1 :(得分:1)

与单个微调器相同。

spinner.setSelection(position);

只需在按钮方法的onclick中为所有微调器执行此操作。

答案 2 :(得分:0)

your_spinner.setSelection(0);
//会将微调器设置到位置1。
//如果传递1,它将设置为位置2。....