首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在strings.xml中通过数组设置微调器的值

在strings.xml中通过数组设置微调器的值
EN

Stack Overflow用户
提问于 2011-12-15 02:08:15
回答 2查看 22.9K关注 0票数 4

我有一个微调控制项,它使用来自strings.xml的数组

如果数组有5个字符串(1,2,3,4,5),我希望微调器将第二个字符串(2)显示为默认值,这可能吗?我知道我可以重新排列字符串的顺序,使第一个是2,但是如果微调器对话框显示为(2,1,3,4,5),这看起来就不是很好。

或者必须在我的activity中以编程方式创建数组,然后使用setPostion()?我已经尝试过了,但在activity中创建数组时遇到错误。谁能给我一个如何创建数组并在spinner()中使用它的例子?

我也在这里寻找答案,但似乎找不到我需要的东西。

谢谢你的关注..。

EN

回答 2

Stack Overflow用户

发布于 2011-12-15 02:41:31

我建议你检查一下:http://developer.android.com/resources/tutorials/views/hello-spinner.html

您应该在您的活动中创建一个ArrayAdapter。

从上面的链接:

代码语言:javascript
运行
复制
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.planets_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
}

您可以使用

代码语言:javascript
运行
复制
spinner.setSelection(adapter.getPosition(value)));

来设置位置。

票数 12
EN

Stack Overflow用户

发布于 2011-12-15 22:59:22

为回复干杯……

我没有做我需要的事情,但我已经设法解决了我的问题,如下所示。

首先,我在我的activity中创建了一个数组,而不是strings.xml。

代码语言:javascript
运行
复制
    String[] NoCore_Array = new String [5];
{ 
    NoCore_Array[0] = "1";
    NoCore_Array[1] = "2";
    NoCore_Array[2] = "3";
    NoCore_Array[3] = "4";
    NoCore_Array[4] = "5";

}

然后我创建了微调器,使用...

代码语言:javascript
运行
复制
    Spinner spnNoCore = (Spinner) findViewById(R.id.spinner_nocore);

然后使用上面的数组创建适配器...

代码语言:javascript
运行
复制
    ArrayAdapter NoCoreAdapter =  new ArrayAdapter(this, 
    android.R.layout.simple_spinner_item,  NoCore_Array);
    spnNoCore.setAdapter(NoCoreAdapter);

然后设置适配器的默认位置,如下所示...

代码语言:javascript
运行
复制
    //Set Default Selection
    spnNoCore.setSelection(1);

然后操作的其余微调代码..。

代码语言:javascript
运行
复制
     spnNoCore.setOnItemSelectedListener(new OnItemSelectedListener(){

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

            //Get item from spinner and store in string conductorSize........
            NoCore = parent.getItemAtPosition(pos).toString();

            if (NoCore.equals(NoCore1))   { CoreNo = 1    ;  }
            if (NoCore.equals(NoCore2))   { CoreNo = 2    ;  }
            if (NoCore.equals(NoCore3))   { CoreNo = 3    ;  }
            if (NoCore.equals(NoCore4))   { CoreNo = 4    ;  }
            if (NoCore.equals(NoCore5))   { CoreNo = 5    ;  }

     }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    });

希望这能帮助其他有同样问题的人在微调器上设置默认选择。

但是,如果使用这种方式,对话框的布局就不那么好了,缺少单选按钮,看起来就像是用线条分隔部分的文本选择。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8509488

复制
相关文章

相似问题

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