(动态)多纺纱州/市 [英] (dynamic) Multiple spinners state/city

查看:107
本文介绍了(动态)多纺纱州/市的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要开发一个Android鉴于这样的,我在这2微调控件,一个状态和第二的城市。

我的问题是,我怎么能填充时自动状态下选择了城市的微调?

什么是其背后的逻辑是什么?

我的string.xml:

 < XML版本=1.0编码=UTF-8&GT?;
<资源>
<字符串名称=spinner_category>< /串>
<字符串数组名=category_state>
    <项目>喀拉拉邦< /项目>
    <项目>泰米尔纳德邦< /项目>
    <项目>安得拉邦< /项目>
    <项目>卡纳塔克邦< /项目>
< /字符串数组>
< /资源>
 

我的main.xml:

 < XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:方向=垂直>

    <的LinearLayout机器人:方向=横向
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT>
        < TextView的Andr​​oid的: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的Andr​​oid的: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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆