选定项目上的微调器字符串?

时间:2015-02-06 19:54:21

标签: android arrays string spinner

我有一个Spinner和一个带有五个数字的独立String-Array。

这是String-Array:

<resources>
<string-array name="numbers">
    <item>10001</item>
    <item>10002</item>
    <item>10003</item>
    <item>10004</item>
    <item>10005</item>
</string-array>

当我选择一个Spinner项时,我希望所选的Spinner项引用String-Array中的一个数字。

示例:

Spinner选择的项目是&#34; Bob&#34;他的号码是10002。 我想让Spinner选择一个String,所以我可以进一步使用它。

该字符串的进一步用法:

String phoneNo = *number from the String-Array*


                try {
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(phoneNo, null, message, null, null);

2 个答案:

答案 0 :(得分:0)

如果包含Bob的字符串数组与包含Bob编号的字符串数组的大小相同,则可以组织两个字符串数组,以使Bob的名称索引与索引相同他的号码。

这样,您只需使用一个索引来引用两个字符串数组中的相关元素。

答案 1 :(得分:0)

最好进行某种映射,然后使用OnItemSelectedListener从地图中检索数字。骰

public class YourActivity extends Activity 
    implements OItemSelectedListener
{
    ...
    private Map<Integer, String> mNumbers;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        mNumbers = new HashMap<>();
        String[] numbers = getResources().getStringArray(R.id.numbers);
        String[] name = getResources().getStringArray(R.id.names);

        if (names.length == numbers.length) {
            for (i = 0; i < names.length; i++) mNumbers.put(i + 1 /*I think*/, numbers[i];
        } else { Log.wtf("YourActivity", "somehow names and numbers are different sizes"); }
        ...
        //btw: you're going to want a better storage option.
        Spinner yourSpinner = (Spinner) findViewById(...);
        yourSpinner.setOnItemSelectedListener(this);
    }
    ...
    @Override
    public void onItemSelected(AdapterView parent, View view, int position, long id) {
         String number = mNumbers.get(position); //I cant remember if the position is zero or one indexed
         //do your thing
    }