首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想要一个依赖于另一个微调器项目的微调器

我想要一个依赖于另一个微调器项目的微调器
EN

Stack Overflow用户
提问于 2013-07-23 19:15:20
回答 1查看 5.4K关注 0票数 2

看,我想当我选择中国作为一个国家在第一个旋转,所以我希望第二个旋转必须显示中国的所有国家,它是由我的这个代码完成的。但是...!我的问题是,当我从第二个旋转器中选择状态时,它会自动将其设置为第二个旋转器的第一个值,就像如果我在第二个旋转器中有3个值-“上海”-“北京”-“南京”当我选择北京时,它会自动返回为上海。!!帮帮我..!!:)

代码语言:javascript
复制
public class MainActivity extends Activity  implements AdapterView.OnItemSelectedListener
{

    String[] country = { "India", "Pakistan", "China"};
    String[] states_india = { "Delhi", "UP", "Bihar"};
    String[] states_china = { "Shanghai", "Beijing", "Nanjing"};
    String[] states_pak = { "Lahor", "Islamabaad", "Punjab"};
    int fee,tot=0,atot=0;
    Spinner spin0,spin1;
    private RadioGroup radioSexGroup;
    RadioButton r1,button1,button2;
    private EditText edittext1,edittext2;
    String Name;
    private TextView calc,detail;
    private Button clean;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        spin0 = (Spinner) findViewById(R.id.spinner1);
        spin0.setOnItemSelectedListener((OnItemSelectedListener) this);
        ArrayAdapter <String> c = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,country);
        c.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin0.setAdapter(c);

        spin1 = (Spinner) findViewById(R.id.spinner2);
        spin1.setOnItemSelectedListener((OnItemSelectedListener) this);
        spin1.setEnabled(false);

    //<!-- © 2013 Parth Shrarma -->
        addListenerOnButton();
    }

    private void addListenerOnButton() {
        radioSexGroup = (RadioGroup)  findViewById(R.id.radioGroup1);
        button1 = (RadioButton)  findViewById(R.id.radioButton1);
        button2 = (RadioButton)  findViewById(R.id.radioButton2);
        edittext1=(EditText) findViewById(R.id.editText1);
        edittext2=(EditText) findViewById(R.id.editText2);
        detail=(TextView) findViewById(R.id.textView5);
        calc=(TextView) findViewById(R.id.textView6);



        calc.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                StringBuilder result=new StringBuilder();


                if(!edittext1.getText().equals("") && edittext1.getText().length() > 0 )
                {
                    Name = edittext1.getText().toString();

                }
                fee = Integer.parseInt(edittext2.getText().toString());

                int selectedId = radioSexGroup.getCheckedRadioButtonId();
                r1 = (RadioButton)  findViewById(selectedId);

                result.append("Details : \nName"+ Name);    


            }});

        clean=(Button) findViewById(R.id.clear);
        clean.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                edittext1.setText("");
                detail.setText("Total : ");

            }
            //<!-- © 2013 Parth Shrarma -->
        });

    }

        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

            spin1.setEnabled(true);
                        if(spin0.getSelectedItem().equals("India"))
                        {
                            ArrayAdapter <String> s1 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_india);
                            s1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                            spin1.setAdapter(s1);
                        }
                        else  if(spin0.getSelectedItem().equals("Pakistan"))
                        {
                            ArrayAdapter <String> s2 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_pak);
                            s2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                            spin1.setAdapter(s2);
                        }
                        else  if(spin0.getSelectedItem().equals("China"))
                        {
                            ArrayAdapter <String> s3 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_china);
                            s3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                            spin1.setAdapter(s3);
                        }

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

        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 20:04:43

问题可能出在您的ItemSelectedListener上。由于为两个微调器设置了相同的侦听器,因此必须检查选择了哪个微调器。您可以使用AdapterView<?> arg0参数进行检查。在这里,您将重复调用setAdapter()

因此,您的代码将更改为,

代码语言:javascript
复制
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

if(arg0.equals(spin0)){

        spin1.setEnabled(true);
                    if(spin0.getSelectedItem().equals("India"))
                    {
                        ArrayAdapter <String> s1 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_india);
                        s1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        spin1.setAdapter(s1);
                    }
                    else  if(spin0.getSelectedItem().equals("Pakistan"))
                    {
                        ArrayAdapter <String> s2 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_pak);
                        s2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        spin1.setAdapter(s2);
                    }
                    else  if(spin0.getSelectedItem().equals("China"))
                    {
                        ArrayAdapter <String> s3 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_china);
                        s3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        spin1.setAdapter(s3);
                    }
}
    } 
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17808620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档