2 markdowneide markdowneide 于 2013.05.29 17:53 提问

选择 spinner 中的合适的值

我在创建一个 Account 的 edit Screen。

Account class 有一些属性,现在我想显示这些属性然后编辑它们。我创建了一个spinner 然后显示account type。

ArrayAdapter<CharSequence> typeOfAccountAdapter = ArrayAdapter.createFromResource(
                        this, R.array.typeOfAccountArray, android.R.layout.simple_spinner_item);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
               typeOfAccount.setAdapter(typeOfAccountAdapter); 

                typeOfAccount.setOnItemSelectedListener(new OnItemSelectedListener() 
                 {
                    @Override
                    public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
                    {
                        if (typeOfAccount.getSelectedItem().toString().equals("Income"))
                            myAccount.accountType = AccountType.kAccountTypeIncome;
                        else if(typeOfAccount.getSelectedItem().toString().equals("Asset"))
                            myAccount.accountType = AccountType.kAccountTypeAsset;
                        else if(typeOfAccount.getSelectedItem().toString().equals("Cash"))
                            myAccount.accountType = AccountType.kAccountTypeAssetCash;
                        else if(typeOfAccount.getSelectedItem().toString().equals("Bank"))
                            myAccount.accountType = AccountType.kAccountTypeAssetBank;
                        else if(typeOfAccount.getSelectedItem().toString().equals("Liability"))
                            myAccount.accountType = AccountType.kAccountTypeLiability;
                        else
                            myAccount.accountType = AccountType.kAccountTypeLiabilityOther;
                        setStrDeatilOfAccount();
                    }

这段代码实际上不是显示 myAccount.accountType ,设置spinner的第一个元素为accountType。

如何显示 myAccount 的 accountType。而不是 typeOfAccountArray 数组的第一项?然后我就可以相应的编辑和改变它。

2个回答

Baby_Bonnie
Baby_Bonnie   2013.05.30 09:45
已采纳

使用这个方法:

String yourAccountTypeInString;
               if (myAccount.accountType == yourAccountType)
                   yourAccountTypeInString= "theStringOfAccountType";
         // use else if 

               int pos = typeOfAccountAdapter.getPosition(yourAccountTypeInString);
               typeOfAccount.setSelection(pos);
nana4ever
nana4ever   2013.05.30 10:14
typeOfAccount.setOnItemSelectedListener(new OnItemSelectedListener() 
             {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
                {  
       constants_class.GROUP=(String) typeOfAccountAdapter.getItem(arg2).toString();
        if(constants_class.GROUP.equalsIgnoreCase("Income")){
        }
        else if(constants_class.GROUP.equalsIgnoreCase("Asset")){
        }  
       else if(constants_class.GROUP.equalsIgnoreCase("Asset")){
        }
}});

默认的 spinner 获取第一个值,但是当点击 spinner,选择任何 item 时,就会正确了。

Csdn user default icon
上传中...
上传图片
插入图片