我有一个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);
答案 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
}