首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取微调器位置并将其选中

获取微调器位置并将其选中
EN

Stack Overflow用户
提问于 2014-02-01 04:14:12
回答 3查看 1.3K关注 0票数 0

我需要在首选项中保存我的微调器的值或位置,当用户访问设置活动时将其显示为选中。但我让troubles.My prob在for中获取项目位置,并将其作为列表中的选定项使用。

微调代码

代码语言:javascript
复制
    Spinner spinner = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.spinner, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

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

            item = parent.getSelectedItem().toString();
            Log.v("SPINNER", item);

             //SAVE PREFS WITH SPINNER VALUE
             SharedPreferences prefs;
             prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
             SharedPreferences.Editor prefEditor = prefs.edit();
             prefEditor.putString("spinner",item);
             prefEditor.commit();
             //RETREIVE SPINNER VALE PREFS
             String spinner=PreferenceManager
                     .getDefaultSharedPreferences(getBaseContext())
                     .getString("spinner","");
//CHECK 
for(int i=0;i<9;i++)
if(spinner.equals(parent.getSelectedItem().toString())){
     spinner.setSelection(parent.getItemAtPosition(position));
     break;
}

        }

        public void onNothingSelected(AdapterView<?> parent) {
            //String str = "Selecciona";
        }

    });

XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="spinner">
        <item>10:00</item>
        <item>11:00</item>
        <item>12:00</item>
        <item>13:00</item>
        <item>14:00</item>
        <item>15:00</item>
        <item>16:00</item>
        <item>17:00</item>
        <item>18:00</item>
        <item>19:00</item>
        <item>20:00</item>
        <item>21:00</item>
        <item>22:00</item>
        <item>23:00</item>
        <item>24:00</item>
    </string-array>
</resources>
EN

回答 3

Stack Overflow用户

发布于 2014-02-01 04:24:55

这可能会有帮助

代码语言:javascript
复制
if(spinner.equals(parent.getSelectedItem().toString())){

将其更改为

代码语言:javascript
复制
if(item.equals(parent.getSelectedItem().toString())){

如果我没弄错你的问题的话..

票数 1
EN

Stack Overflow用户

发布于 2014-06-22 05:50:23

我认为获取在微调器中选择的项的更好方法是在onItemSelected方法中,使用position变量来获取该位置的项。

代码语言:javascript
复制
item = parent.getItemAtPostion(position).toString();

然后,当用户使用此微调器导航回视图时,您可以通过以下方法设置微调器的位置:首先在适配器中找到项所在的位置(因为您正在使用ArrayAdapter<CharSequence>),然后设置微调器的位置。

代码语言:javascript
复制
String spinner=PreferenceManager
                 .getDefaultSharedPreferences(getBaseContext())
                 .getString("spinner","");
int position = adapter.getPosition(item);
spinner.setSelection(position);
票数 1
EN

Stack Overflow用户

发布于 2014-02-01 14:47:08

for循环和if条件之间没有有用的关系:

代码语言:javascript
复制
for(int i=0;i<9;i++)

if(spinner.equals(parent.getSelectedItem().toString())){
spinner.setSelection(parent.getItemAtPosition(position));

应该使用循环中的"i“,如parent.getItemAtPosition(i).toString()

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

https://stackoverflow.com/questions/21489212

复制
相关文章

相似问题

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