我的飞旋的项可以依赖于另一个微调的立场? [英] Can my spinner's entries depend on another spinner's position?

查看:140
本文介绍了我的飞旋的项可以依赖于另一个微调的立场?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾在节目没有正式的训练都没有(我在大学一年级,不过,将主修的话),并正尝试只需要知道的Visual Basic后学习Android的,所以我需要很多的帮助。这里的code我到目前为止有:

I have had no formal training in programming at all yet (I'm a freshman in college, though, and going to major in it), and am trying to learn Android after only knowing Visual Basic, so I need a lot of help. Here's the code I have so far:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.Books, android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(adapter1);
    spinner1.setOnItemSelectedListener(
            new OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    // Here's what I need help with. I basically want it to say:
                     switch(position) {

                     case 0:
                         // Here I want it to set spinner2's entries to R.array.Five
                     case 1:
                         //Here I want to set spinner2's entries to R.array.Three
                    //etc...
                }
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });

    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.Five, android.R.layout.simple_spinner_item);
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(adapter2);
    spinner2.setOnItemSelectedListener(
            new OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //(something similar)
                }
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });
}

是否有可能一个微调的条目阵列从另一个微调的onItemSelected方法改变?什么code,我需要补充的地方?想说一些关于spinner2或适配器2在spinner1的OnItemSelectedListener说,这是一个错位的结构。这是有道理的,但我不知道怎么去解决这一问题。

Is it possible to change the entries array of one spinner from another spinner's onItemSelected method? What code do I need to add where? Trying to say something about spinner2 or adapter2 in spinner1's OnItemSelectedListener says it's a misplaced construct. Which makes sense, but I don't know how to get around that.

推荐答案

只要定义在onCreate方法与定义的备用套顶部的替代ArrayAdapter(S)。此外,移 spinner2 定义 OnItemSelectedListener 上文定义的,因此它可以是内部类中访问。微调变量以及数组适配器必须敲定是内部类中访问。

Just define the alternative ArrayAdapter(s) at top of OnCreate method with alternate sets defined. Further, move up the definition of spinner2 above the definition of OnItemSelectedListener so it can be accessible inside the inner class. The spinner variable as well as the array adapters must be finalized to be accessible inside the inner class.

通过简单地调用 spinner2.setAdapter(....)的开关等-case语句里面更改适配器。

Change the adapter by simply invoking spinner2.setAdapter(....) inside the swith-case statement.

这将只要你只是想处理元素的静态套在你的微调工作。

This will work as long as you only want to handle static sets of elements in your spinner.

这篇关于我的飞旋的项可以依赖于另一个微调的立场?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆