Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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_Android Spinner - Fatal编程技术网

在android中,如何根据用户在微调器项目中单击的内容向服务器发送值?

在android中,如何根据用户在微调器项目中单击的内容向服务器发送值?,android,android-spinner,Android,Android Spinner,我的活动中有一个微调器,其中包含运算符名称,当用户从微调器中选择项目时,我希望向服务器发送另一个值,如 若用户从spinner中选择“Airtel”,我必须像其他项目一样将“AR”发送到服务器。我如何才能做到这一点 代码:-\ <string-array name="operators"> <item>Select Operator</item> <item>Aircel</item> <item>A

我的活动中有一个微调器,其中包含运算符名称,当用户从微调器中选择项目时,我希望向服务器发送另一个值,如 若用户从spinner中选择“Airtel”,我必须像其他项目一样将“AR”发送到服务器。我如何才能做到这一点

代码:-\

<string-array name="operators">
    <item>Select Operator</item>
    <item>Aircel</item>
    <item>Airtel</item>
    <item>BSNL</item>
    <item>Idea</item>
    <item>Vodafone</item>
    <item>MTNL Delhi</item>
    <item>MTNL Mumbai</item>
</string-array>

选择运算符
艾尔塞尔
艾尔特尔
BSNL
主意
沃达丰
新德里
孟买MTNL酒店
在这里,当用户从上面的列表中选择项目时,我必须根据上面的项目从下面的列表中发送值

 <string-array name="Operators_Code">
    <item>AC</item>
    <item>AT</item>
    <item>BS</item>
    <item>ID</item>
    <item>VD</item>
    <item>MT</item>
</string-array>

自动控制
在
学士学位
身份证件
VD
机器翻译

微调器类似于ListView、RecyclerView等,是一个“支持适配器”的视图。也就是说,它从
适配器
获取要显示的项目

当您使用
android:entries=“@array/operators
”设置要显示的条目时,Spinner会在内部使用提供的数组项创建一个适配器。但是,这个简单的解决方案不支持复杂的对象

对于您的用例,您必须为微调器创建自定义适配器

public class Operator {
    String name;
    String code;

    @Override
    public String toString() {
        return name;
    }
}

final List<Operator> operators = new ArrayList(7);
operators.add(new Operator("Select operator", null));
operators.add(new Operator("Aircel", "AC"));
operators.add(new Operator("Airtel", "AC"));
....
公共类运算符{
字符串名;
字符串代码;
@凌驾
公共字符串toString(){
返回名称;
}
}
最终列表运算符=新的ArrayList(7);
运算符。添加(新运算符(“选择运算符”,null));
添加(新运营商(“Aircel”、“AC”);
新增(新运营商(“Airtel”、“AC”));
....
接下来,在微调器上设置适配器:

final ArrayAdapter<String> operatorsAdapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, operators);
spinner.setAdapter(operatorsAdapter);
final ArrayAdapter operator adapter=新的ArrayAdapter(上下文,android.R.layout.simple\u下拉列表\u item\u 1line,operators);
spinner.setAdapter(操作员适配器);
就是这样。现在,如果您想聆听用户的选择,请通过以下方式向微调器添加一个侦听器:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        final Operator selectedOperator = operatorsAdapter.getItem(position);
        final String selectedOperatorCode = selectedOperator.code;
        // TODO: Send the selected operator to the server.
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
});
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
最终操作员选择Operator=OperatorAdapter.getItem(位置);
最终字符串selectedOperator代码=selectedOperator.code;
//TODO:将所选操作员发送到服务器。
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

微调器类似于ListView、RecyclerView等,是一个“支持适配器”的视图。也就是说,它从
适配器中获取要显示的项目

当您使用
android:entries=“@array/operators
”设置要显示的条目时,Spinner会在内部使用提供的数组项创建一个适配器。然而,这个简单的解决方案不支持复杂的对象

对于您的用例,您必须为微调器创建自定义适配器

public class Operator {
    String name;
    String code;

    @Override
    public String toString() {
        return name;
    }
}

final List<Operator> operators = new ArrayList(7);
operators.add(new Operator("Select operator", null));
operators.add(new Operator("Aircel", "AC"));
operators.add(new Operator("Airtel", "AC"));
....
公共类运算符{
字符串名;
字符串代码;
@凌驾
公共字符串toString(){
返回名称;
}
}
最终列表运算符=新的ArrayList(7);
运算符。添加(新运算符(“选择运算符”,null));
添加(新运营商(“Aircel”、“AC”);
新增(新运营商(“Airtel”、“AC”));
....
接下来,在微调器上设置适配器:

final ArrayAdapter<String> operatorsAdapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, operators);
spinner.setAdapter(operatorsAdapter);
final ArrayAdapter operator adapter=新的ArrayAdapter(上下文,android.R.layout.simple\u下拉列表\u item\u 1line,operators);
spinner.setAdapter(操作员适配器);
就这样。现在,如果要侦听用户的选择,请通过以下方式将侦听器添加到微调器:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        final Operator selectedOperator = operatorsAdapter.getItem(position);
        final String selectedOperatorCode = selectedOperator.code;
        // TODO: Send the selected operator to the server.
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
});
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
最终操作员选择Operator=OperatorAdapter.getItem(位置);
最终字符串selectedOperator代码=selectedOperator.code;
//TODO:将所选操作员发送到服务器。
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

操作员数组和操作员代码之间的链接是什么?操作员数组和操作员代码之间的链接是什么?但我只根据单击的项目将操作员代码发送到服务器,但当我像您上面提到的那样写“Airtel”,aC时,它在微调器中是什么样子的,如“Airtel”、“aC”或“Airtel”“哦,我完全忘了。因此,
ArrayAdapter
将使用项目的
toString()
返回的文本作为微调器中项目的文本。还有一件事,我可以将所有操作员的名称和代码添加到一个类中,并可以类式运算符进行访问。add()但我只根据单击的项目向服务器发送操作员代码,但当我按照上面提到的那样编写时“Airtel”,“aC”在旋转器中是什么样子的,像“Airtel”,“aC”或“Airtel”哦,我完全忘记了。因此,
ArrayAdapter
将使用项的
toString()
返回的文本作为微调器中项的文本。还有一件事我可以在一个类中添加所有操作员的名称和代码,并可以在类类中访问。add()