(动态)多纺纱州/市 [英] (dynamic) Multiple spinners state/city
问题描述
我要开发一个Android鉴于这样的,我在这2微调控件,一个状态和第二的城市。
我的问题是,我怎么能填充时自动状态下选择了城市的微调?
什么是其背后的逻辑是什么?
我的string.xml:
< XML版本=1.0编码=UTF-8&GT?;
<资源>
<字符串名称=spinner_category>< /串>
<字符串数组名=category_state>
<项目>喀拉拉邦< /项目>
<项目>泰米尔纳德邦< /项目>
<项目>安得拉邦< /项目>
<项目>卡纳塔克邦< /项目>
< /字符串数组>
< /资源>
我的main.xml:
< XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直>
<的LinearLayout机器人:方向=横向
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT>
< TextView的Android的:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:填充=10dip
机器人:文本=选择/>
<微调的android:layout_width =250dip
机器人:layout_height =WRAP_CONTENT
机器人:ID =@ + ID / spinner_state/>
< / LinearLayout中>
<的LinearLayout机器人:方向=横向
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT>
< TextView的Android的:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:填充=10dip
机器人:文本=选择/>
<微调的android:layout_width =250dip
机器人:layout_height =WRAP_CONTENT
机器人:ID =@ + ID / spinner_state/>
< / LinearLayout中>
< / LinearLayout中>
和我activity.java文件:
包com.converter;
进口android.app.Activity;
进口android.os.Bundle;
进口android.widget.ArrayAdapter;
进口android.widget.Spinner;
公共类ConverterActivity扩展活动
{
/ **第一次创建活动时调用。 * /
@覆盖
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
微调spinner_s =(微调)findViewById(R.id.spinner_state);
ArrayAdapter< CharSequence的> category_adapter = ArrayAdapter.createFromResource(
对此,R.array.category_array,android.R.layout.simple_spinner_item);
category_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_s.setAdapter(category_adapter);
}
}
下面是正确的方法亲爱的......
我已经写了所有需要的州和城市string_arays ....
喜欢
<字符串数组名=State_array>
<项目> S1< /项目>
<项目> S2< /项目>
<项目> S3< /项目>
<项目> S4< /项目>
< /字符串数组>
//那么城市阵列的每个州,如
<字符串数组名=State1Cities_array>
<项目> C11< /项目>
<项目> 12< /项目>
<项目> C15< /项目>
<项目> C13< /项目>
< /字符串数组>
<字符串数组名=State2Cities_array>
<项目> C1< /项目>
<项目> C2< /项目>
<项目> C5< /项目>
<项目> C3< /项目>
< /字符串数组>
//等等的所有状态
然后在主XML加2纺纱厂为。我相信的所有的U可以做我简单呐?
然后我有我的main.xml为...
spinner_states_activity =(微调)findViewById(R.id.spinner_states_main);
spinner_states_activity.setOnItemSelectedListener(本);
适配器= ArrayAdapter.createFromResource(
对此,R.array.state_array,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(R.layout.myspinner);
//我的布局纺纱ü可以使用URS或defalut。 K +
spinner_states_activity.setAdapter(适配器);
spinner_cities_activity =(微调)findViewById(R.id.spinner_cities_main);
spinner_cities_activity.setOnItemSelectedListener(本);
//并且在功能onItemSelected
INT POS,POS2;
POS = spinner_states_activity.getSelectedItemPosition();
INT鉴定者= parent.getId();
如果(iDEN的== R.id.spinner_states_main)
{
POS2 = 0;
开关(POS)
{
情况下0:unit_adapter = ArrayAdapter.createFromResource(
对此,R.array.States1Cities_array,android.R.layout.simple_spinner_item);
打破;
案例1:unit_adapter = ArrayAdapter.createFromResource(
对此,R.array.States3Cities_array,android.R.layout.simple_spinner_item);
打破;
//所有StatesxCities entires ....
默认:
打破;
}
spinner_cities_activity.setAdapter(unit_adapter);
unit_adapter.setDropDownViewResource(R.layout.myspinner);
}
只是检查一下,做它自己... 希望这将有助于ü一点点......
K亲爱的朋友...... Sujith
I have to develop an android view such that i have 2 spinner controls in it, one for state and the second for cities.
My question is, how can I populate the city spinner automatically whenever a state is selected?
What's the logic behind it?
My string.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="spinner_category"></string>
<string-array name="category_state">
<item >kerala</item>
<item >tamil nadu</item>
<item >Andra Pradesh</item>
<item >karnataka</item>
</string-array>
</resources>
My main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip"
android:text="Select : "/>
<Spinner android:layout_width="250dip"
android:layout_height="wrap_content"
android:id="@+id/spinner_state"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip"
android:text="Select : "/>
<Spinner android:layout_width="250dip"
android:layout_height="wrap_content"
android:id="@+id/spinner_state"/>
</LinearLayout>
</LinearLayout>
And my activity.java file:
package com.converter;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class ConverterActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner_s = (Spinner)findViewById(R.id.spinner_state);
ArrayAdapter<CharSequence> category_adapter = ArrayAdapter.createFromResource(
this, R.array.category_array, android.R.layout.simple_spinner_item);
category_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_s.setAdapter(category_adapter);
}
}
Here is the correct way dear....
I had wrote all the needed states and cities in string_arays....
like
<string-array name="State_array">
<item >s1</item>
<item >s2</item>
<item >s3</item>
<item >s4</item>
</string-array>
//then cities array for each states, like
<string-array name="State1Cities_array">
<item >c11</item>
<item >c12</item>
<item >c15</item>
<item >c13</item>
</string-array>
<string-array name="State2Cities_array">
<item >c1</item>
<item >c2</item>
<item >c5</item>
<item >c3</item>
</string-array>
// and so on for all the states
then in main xml added 2 spinners for both. i belive all of u can do i simple, na?
then i have my main.xml as...
spinner_states_activity = (Spinner)findViewById(R.id.spinner_states_main);
spinner_states_activity.setOnItemSelectedListener(this);
adapter = ArrayAdapter.createFromResource(
this, R.array.state_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(R.layout.myspinner);
// my layout for spinners u can use urs or defalut. k?
spinner_states_activity.setAdapter(adapter);
spinner_cities_activity = (Spinner)findViewById(R.id.spinner_cities_main);
spinner_cities_activity.setOnItemSelectedListener(this);
//and in function onItemSelected
int pos,pos2;
pos = spinner_states_activity.getSelectedItemPosition();
int iden=parent.getId();
if(iden==R.id.spinner_states_main)
{
pos2 = 0;
switch (pos)
{
case 0: unit_adapter= ArrayAdapter.createFromResource(
this, R.array.States1Cities_array, android.R.layout.simple_spinner_item);
break;
case 1: unit_adapter= ArrayAdapter.createFromResource(
this, R.array.States3Cities_array, android.R.layout.simple_spinner_item);
break;
// all the StatesxCities entires....
default:
break;
}
spinner_cities_activity.setAdapter(unit_adapter);
unit_adapter.setDropDownViewResource(R.layout.myspinner);
}
Just check a look and do it by yourself... Hope this will helps u a little...
k dear friends.. Sujith
这篇关于(动态)多纺纱州/市的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!