当我们从Android SDK中的值列表中选择一项时,如何显示值(依赖值)?

Posted

技术标签:

【中文标题】当我们从Android SDK中的值列表中选择一项时,如何显示值(依赖值)?【英文标题】:How to display the vaule(dependent value) when we select one item form the list of values in Android SDK? 【发布时间】:2011-03-17 22:43:12 【问题描述】:

我是这个 android SDK 平台的新手,所以你们能帮我解决我的问题吗? 所以让我们简要讨论一下我的问题,我正在开发一个小型应用程序,其中正在使用 spiner 列出所有国家和邮政编码,所以我的问题是当我在列表中选择一个国家时,它应该自动填充并显示其相应的邮政编码

下面是我的 main.xml 文件

 android:layout_centerHorizontal="true"
 android:layout_marginTop="2dp"
 android:padding="12dip"
 android:layout_
 android:layout_marginRight="20dip"
 />

这是我的 Activity 类

导入android.app.Activity;

导入android.os.Bundle; 导入android.view.View; 导入 android.widget.AdapterView; 导入 android.widget.ArrayAdapter; 导入 android.widget.Spinner; 导入 android.widget.AdapterView.OnItemSelectedListener;

公共类 EriePremium 扩展 Activity /** 在第一次创建活动时调用。 */

@SuppressWarnings("未选中") @覆盖 公共无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main);

    Spinner s = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.States, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s.setAdapter(adapter);

Spinner s1 = (Spinner) findViewById(R.id.spinner1); 
ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this, R.array.Zip, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter1); 

还有我的数组列表array.xml文件

阿拉巴马州 阿拉斯加 美属萨摩亚 亚利桑那 阿肯色州 加利福尼亚 科罗拉多 康涅狄格 特拉华州 哥伦比亚特区 佛罗里达 格鲁吉亚 关岛 夏威夷 爱达荷州 伊利诺伊州

1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016

等待回复

提前致谢, 马杜

【问题讨论】:

【参考方案1】:

这是经过测试并且(双向工作)

EriePremium.java

package com.example.statezip;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;


public class EriePremium extends Activity 


public Spinner zipspinner,statespinner;


protected void onCreate(Bundle mbfSplash) 

        super.onCreate(mbfSplash);
        setContentView(R.layout.main);
        setupZip();
        setupState();



public void setupZip() 


    zipspinner = (Spinner) findViewById(R.id.zipspinner);
//  List<String> ziplist = new ArrayList<String>();
    ArrayAdapter<CharSequence> zipAdapter = ArrayAdapter.createFromResource(this, R.array.zip, android.R.layout.simple_spinner_item);
    zipAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    zipspinner.setAdapter(zipAdapter);
    zipspinner.setOnItemSelectedListener(new zipOnClickListener());

private void setupState()

    statespinner = (Spinner) findViewById(R.id.statespinner);
//    List<String> statelist = new ArrayList<String>();
    ArrayAdapter<CharSequence> stateAdapter = ArrayAdapter.createFromResource(this, R.array.state, android.R.layout.simple_spinner_item);
    stateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    statespinner.setAdapter(stateAdapter);
    statespinner.setOnItemSelectedListener(new stateOnClickListener());


    public class stateOnClickListener implements OnItemSelectedListener 
    
        @Override public void onItemSelected(AdapterView<?> parent, View v, int pos,long id) 
        
             zipspinner.setSelection(pos);//parent.getItemAtPosition(pos)
        



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

        
    
    public class zipOnClickListener implements OnItemSelectedListener 
    
        @Override public void onItemSelected(AdapterView<?> parent, View v, int pos,long id) 
        
            statespinner.setSelection(pos);//parent.getItemAtPosition(pos)
        



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

        
    
//class

ma​​in.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:layout_gravity="center_vertical"
    android:gravity="top|left" >

    <TextView
        android:id="@+id/title"
        android:layout_
        android:layout_
        android:gravity="center"
        android:text="@string/title"
        android:textSize="30dp" />

    <Spinner
        android:id="@+id/statespinner"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/title"
        android:entries="@array/state"
        android:prompt="@string/state" />

    <Spinner
        android:id="@+id/zipspinner"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/statespinner"
        android:entries="@array/zip"
        android:prompt="@string/zip" />

</RelativeLayout>

TemoActivity.java

strings.xml

<string name="zip">zip</string>
<string name="state">state</string>
<string name="title">state/zip</string>

<string-array name="state">
<item>Alabama Alaska</item>
<item>American Samoa</item>
<item>Arizona</item>
<item>Arkansas</item>
<item>California</item>
<item>Colorado</item>
<item>Connecticut</item>
<item>Delaware District of Columbia</item>
<item>Florida</item>
<item>Georgia</item>

..... 字符串数组>

<string-array name="zip">
<item>1001</item>
<item>1002</item>
<item>1003</item>
<item>1004</item>
<item>1005</item>
<item>1006</item>
<item>1007</item>
<item>1008 1009</item>
<item>1010</item>
<item>1011</item>

…… 字符串数组>

【讨论】:

以上是关于当我们从Android SDK中的值列表中选择一项时,如何显示值(依赖值)?的主要内容,如果未能解决你的问题,请参考以下文章

WPF:仅当列表框中的一项被选中时才启用按钮

无法以编程方式选择Telerik RadDropDownList中的值

Csharp:根据组合框中的值加载选中的项目列表

如何从 SQL Server 中的值列表中进行选择

如何从列表中选择第一项[重复]

Android Studio 中的模拟器无法启动