Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为项目编号,然后将“活动”传递给API_Java_Android_Android Spinner_Matching - Fatal编程技术网

Java 将字符串转换为项目编号,然后将“活动”传递给API

Java 将字符串转换为项目编号,然后将“活动”传递给API,java,android,android-spinner,matching,Java,Android,Android Spinner,Matching,我正在开发一个Android应用程序。我有一个微调器,可以找到从中选择的项目。我需要能够将所选项目匹配到一个数字,然后将其传递给另一个活动以执行API请求。我不知道该怎么做。我一直在寻找这个问题的解决方案,但我还没有找到可以遵循的非常清晰的说明。我发现我可以使用Map来做匹配部分,但是我如何才能从中检索到所选部分的编号呢?我是否可以在数组中搜索SelectedValue,这将如何实现?我知道我可以做startActivityforResult()将号码转移到下一个活动。我也不知道如何将numbe

我正在开发一个Android应用程序。我有一个微调器,可以找到从中选择的项目。我需要能够将所选项目匹配到一个数字,然后将其传递给另一个活动以执行API请求。我不知道该怎么做。我一直在寻找这个问题的解决方案,但我还没有找到可以遵循的非常清晰的说明。我发现我可以使用
Map
来做匹配部分,但是我如何才能从中检索到所选部分的编号呢?我是否可以在数组中搜索
SelectedValue
,这将如何实现?我知道我可以做
startActivityforResult()
将号码转移到下一个活动。我也不知道如何将
number
添加到url,比如
number
。我的代码如下:

TestStation.java的一部分

        Spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub

                String selectedValue = arg0.getItemAtPosition(arg2).toString();
                int[] Yellow_ID = getResources().getIntArray(R.array.Yellow_ID);
                int[] Yellow_Li = getResources().getIntArray(R.array.Yellow_Line);

                HashMap<Integer, Integer> myMap = new HashMap<Integer, Integer>();
                for (int i = 0; i < Yellow_Line.length(); i++) {
                    myMap.put(Yellow_Li[i], Yellow_ID[i]);
                }




        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });


}
Spinner2.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
String selectedValue=arg0.getItemAtPosition(arg2.toString();
int[]Yellow\u ID=getResources().getIntArray(R.array.Yellow\u ID);
int[]Yellow\u Li=getResources().getIntArray(R.array.Yellow\u行);
HashMap myMap=新HashMap();
对于(int i=0;i

谢谢您的帮助。

要匹配一对字符串-数字值,可以使用字符串->数字映射。例如:

Map<String, Integer> pairs = new HashMap<String, Integer>();
pairs.put("key1", 25);
pairs.put("key2", 10);
这能解决你的问题吗

评论后的版本:

Map<String, Integer> posibleSelectedValues = new HashMap<String, Integer>();
posibleSelectedValues("possibleKey1", respectiveValue1);
posibleSelectedValues("possibleKey2", respectiveValue2);
posibleSelectedValues("possibleKey3", respectiveValue3);
posibleSelectedValues("possibleKey4", respectiveValue4);
posibleSelectedValues("possibleKey5", respectiveValue5);

如果值不是动态的,则微调器中的项可以是枚举

mySpinner.setAdapter(new ArrayAdapter<Value>(this, android.R.layout.simple_spinner_item, Value.values()));

        Spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> arg0, View arg1,
            int arg2, long arg3) {
            Value selectedValue = arg0.getItemAtPosition(arg2);
            //Get whatever you want from it
    }

唯一的另一件事就是比较它们。我有大约100个项目,所以如果value=somestring Integer value=pairs.get(“key1”);/,我必须执行
value=25,如果value=otherstring整数值=pairs.get(“key2”);//value=10不,您可以直接执行:
Integer intValue=pairs.get(strValue)值对,两者都可以是任何类型的对象
String userSelectedValue= user_selected_option;
Integer correspondingValue = posibleSelectedValues.get(userSelectedValue);
mySpinner.setAdapter(new ArrayAdapter<Value>(this, android.R.layout.simple_spinner_item, Value.values()));

        Spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> arg0, View arg1,
            int arg2, long arg3) {
            Value selectedValue = arg0.getItemAtPosition(arg2);
            //Get whatever you want from it
    }
public enum Value {
  BLAH("key1",1,"myToStringVal"), MORE_BLAH("key1",1,"myToStringVal");
  Value(String key, int value, String name) {
    this.key = key;
    this.value = value;
    this.name = name;
  }   

  public String getKey() {
    return key;
  }
  public int getValue() {
    return value;
  }
  public String toString() {
    return name;
  }
}