当我们从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
main.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中的值列表中选择一项时,如何显示值(依赖值)?的主要内容,如果未能解决你的问题,请参考以下文章