Reputation: 21
Am new to this Android SDK platform,so could you people help me out to solve my issue. so lets discuss brief about my issue, am developing small application in which am using sppiner to list all country states and zip codes so my question is when i select one country state in a list it should automatically populate and display its corresponding zip code
below is my main.xml file
android:layout_centerHorizontal="true"
android:layout_marginTop="2dp"
android:padding="12dip"
android:layout_height="40dip"
android:layout_marginRight="20dip"
/>
here is my Activity class
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 { /** Called when the activity is first created. */
@SuppressWarnings("unchecked") @Override public void 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);
}
}
and my array list array.xml file
Alabama
Alaska
American Samoa
Arizona
Arkansas
California
Colorado
Connecticut
Delaware
District of Columbia
Florida
Georgia
Guam
Hawaii
Idaho
Illinois
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
Awaiting for response
Thanks in advance, Madhu
Upvotes: 2
Views: 451
Reputation: 9153
This is tested and (works bi-directionally)
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_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="top|left" >
<TextView
android:id="@+id/title"
android:layout_width="130dp"
android:layout_height="50dp"
android:gravity="center"
android:text="@string/title"
android:textSize="30dp" />
<Spinner
android:id="@+id/statespinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:entries="@array/state"
android:prompt="@string/state" />
<Spinner
android:id="@+id/zipspinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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>
<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>
...... < /string-array>
Upvotes: 0