Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Android 使用微调器的选定项_Android_Web Services_Android Studio_Android Spinner - Fatal编程技术网

Android 使用微调器的选定项

Android 使用微调器的选定项,android,web-services,android-studio,android-spinner,Android,Web Services,Android Studio,Android Spinner,我有点卡住了,需要了解如何使用从微调器中选择的信息。 首先,通过Asynctask上的以下代码,通过Web服务填充微调器: @Override protected Void doInBackground(Void... unused) { ... ... ... HttpTransportSE transportSE = new HttpTransportSE(URL);

我有点卡住了,需要了解如何使用从微调器中选择的信息。 首先,通过Asynctask上的以下代码,通过Web服务填充微调器:

@Override
        protected Void doInBackground(Void... unused) {
            ...
            ...
            ...
            HttpTransportSE transportSE = new HttpTransportSE(URL);
            try{
                //Web service call
                transportSE.call(SOAP_ACTION_BRING_NEEDS, envelope);

                //create SoapPrimitive and obtain response
                resultsRequestSOAP = (SoapObject)envelope.getResponse();

                int intPropertyCount = resultsRequestSOAP.getPropertyCount();
                strNeeds = new String[intPropertyCount];

                for(int i= 0;i< intPropertyCount; i++)
                {                        
                    //Format the information from the web service
                    Object property = resultsRequestSOAP.getProperty(i);
                    if (property instanceof SoapObject) {
                        SoapObject needsList = (SoapObject) property;
                        strNeeds[i] = needsList.getProperty("Descripcion").toString();
                    }
                }
@覆盖
受保护的空位背景(空位…未使用){
...
...
...
HttpTransportSE-transportSE=新的HttpTransportSE(URL);
试一试{
//Web服务调用
传输呼叫(SOAP、行动、需求、信封);
//创建SoapPrimitive并获取响应
resultsRequestSOAP=(SoapObject)信封。getResponse();
int intPropertyCount=resultsRequestSOAP.getPropertyCount();
strNeeds=新字符串[intPropertyCount];
for(int i=0;i
然后在postExecute中,我填充调用方法SpinnerRequireds()的微调器:

public void喷丝头需求(){
//需要微调器控制
spnNeeds=(微调器)findViewById(R.id.spnNeeds);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,strNeeds);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
spnNeeds.setAdapter(适配器);
spnNeeds.选举(1);
setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//待办事项
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
问题是微调器由strNeeds[]填充属性(“description”),但web服务响应有3个属性,我需要另一个属性调用“Codigo”,以便将信息发送到另一个活动。在微调器上选择一个选项并使用“Codigo”进行验证后,如何进行验证那我也需要吗

我正在考虑创建另一个字符串[]strCode并将属性“Codigo”值保存在FOR()中,就像我对“description”属性所做的那样……但是如果我在微调器上选择一个选项,我如何验证该strCode


PD:“Codigo”属性不包含上升值,例如,第一个值不是1,2,3,4…它们具有随机值…

答案将非常复杂,但一旦您理解了它,答案就非常简单了。 首先,您需要创建一个对象,比如说,需要3个属性(Description,Codigo.) 接下来,不要使用String类型的arrayadapter,而是使用NEED类型的arrayadapter。 接下来,在自定义类NEED中,重写toString()方法,使其返回需要在微调器中显示的属性值。 现在,所选项目将返回NEED对象,从中可以获得'Codigo'属性的值

class Need{
String description, codigo, property3;
public Need(String desc, String codigo, String prop3)
{
 this.description = desc;//similarly for other 2 properties
}
@override
private String toString()
{
 return this.description;
}
}

strNeeds = new Need[intPropertyCount];
for(){
strNeeds[i] = new Need();
}

ArrayAdapter<Need> adapter = new ArrayAdapter<Need>(this,android.R.layout.simple_list_item_1,     strNeeds);
课程需求{
字符串描述,codigo,属性3;
公共需求(字符串描述、字符串编码、字符串prop3)
{
this.description=desc;//对于其他2个属性也是如此
}
@凌驾
私有字符串toString()
{
返回此.description;
}
}
strNeeds=新需求[intPropertyCount];
for(){
strNeeds[i]=新需求();
}
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,strNeeds);
class Need{
String description, codigo, property3;
public Need(String desc, String codigo, String prop3)
{
 this.description = desc;//similarly for other 2 properties
}
@override
private String toString()
{
 return this.description;
}
}

strNeeds = new Need[intPropertyCount];
for(){
strNeeds[i] = new Need();
}

ArrayAdapter<Need> adapter = new ArrayAdapter<Need>(this,android.R.layout.simple_list_item_1,     strNeeds);