多层下拉框

原创 2015年11月18日 18:45:25


package com.scxh;

import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

	private ArrayList<String> city;
	private ArrayList<String> qu;
	private LayoutInflater inflater;
	private String[] sheng;
	private String[] sc_city;
	private String[] gd_city;
	private String[] cd_qu;
	private String[] zy_qu;
	private MyAdapter1 mMyAdapter1;
	private MyAdapter2 mMyAdapter2;
	private MyAdapter3 mMyAdapter3;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		sheng = getResources().getStringArray(R.array.sheng);
		sc_city = getResources().getStringArray(R.array.sc_city);
		gd_city = getResources().getStringArray(R.array.gd_city);
		cd_qu = getResources().getStringArray(R.array.cd_qu);
		zy_qu = getResources().getStringArray(R.array.zy_qu);
		city=new ArrayList<String>();
		qu=new ArrayList<String>();
		
		Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
		mMyAdapter1 = new MyAdapter1(this, -1);
		spinner1.setAdapter(mMyAdapter1);
		spinner1.setOnItemSelectedListener(new MyOnItemSelectedListener1());
		
		Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
		mMyAdapter2 = new MyAdapter2(this, -1);
		spinner2.setAdapter(mMyAdapter2);
		spinner2.setOnItemSelectedListener(new MyOnItemSelectedListener2());
		
		Spinner spinner3 = (Spinner) findViewById(R.id.spinner3);
		mMyAdapter3 = new MyAdapter3(this, -1);
		spinner3.setAdapter(mMyAdapter3);
	
	}

	class MyAdapter1 extends ArrayAdapter<String> {

		public MyAdapter1(Context context, int resource) {
			super(context, resource);
			inflater = LayoutInflater.from(context);
		}

		@Override
		public int getCount() {

			return sheng.length;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(sheng[position]);
			return convertView;
		}

		@Override
		public View getDropDownView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(sheng[position]);
			return convertView;
		}

	}

	class MyAdapter2 extends ArrayAdapter<String> {

		public MyAdapter2(Context context, int resource) {
			super(context, resource);
			inflater = LayoutInflater.from(context);
		}

		@Override
		public int getCount() {

			return city.size();
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(city.get(position));
			return convertView;
		}

		@Override
		public View getDropDownView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(city.get(position));
			return convertView;
		}

	}

	class MyAdapter3 extends ArrayAdapter<String> {

		public MyAdapter3(Context context, int resource) {
			super(context, resource);
			inflater = LayoutInflater.from(context);
		}

		@Override
		public int getCount() {

			return qu.size();
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(qu.get(position));
			return convertView;
		}

		@Override
		public View getDropDownView(int position, View convertView, ViewGroup parent) {
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.buju, null);
			}
			TextView textview = (TextView) convertView.findViewById(R.id.textview);
			textview.setText(qu.get(position));
			return convertView;
		}

	}

	class MyOnItemSelectedListener1 implements OnItemSelectedListener {

		@Override
		public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
			switch (position) {
			case 0:
				city.clear();
				for (String i : sc_city) {
					city.add(i);
				}
				mMyAdapter2.notifyDataSetChanged();
				break;
				
			case 1:
				city.clear();
				for (String i : gd_city) {
					city.add(i);
				}
				mMyAdapter2.notifyDataSetChanged();
				break;

			default:
				break;
			}

		}

		@Override
		public void onNothingSelected(AdapterView<?> parent) {

		}
	}
	
	class MyOnItemSelectedListener2 implements OnItemSelectedListener {

		@Override
		public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
			switch (position) {
			case 0:
				qu.clear();
				for (String i : cd_qu) {
					qu.add(i);
				}
				mMyAdapter3.notifyDataSetChanged();
				break;
			case 1:
				qu.clear();
				for (String i : zy_qu) {
					qu.add(i);
				}
				mMyAdapter3.notifyDataSetChanged();
				break;

			default:
				break;
			}

		}

		@Override
		public void onNothingSelected(AdapterView<?> parent) {

		}
	}
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.scxh.MainActivity" >
    
    <Spinner android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
    
    <Spinner android:id="@+id/spinner2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />
    
    <Spinner android:id="@+id/spinner3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="sheng">
        <item >四川</item>
        <item >广东</item>
        <item >青海</item>
        <item >陕西</item>
    </string-array>
    
    <string-array name="sc_city">
        <item >成都</item>
        <item >资阳</item>
        <item >绵阳</item>
        <item >广元</item>
        <item >简阳</item>
    </string-array>
    
    <string-array name="gd_city">
        <item >广州</item>
        <item >深圳</item>
        <item >中山</item>
        <item >东莞</item>
    </string-array>
    
    <string-array name="cd_qu">
        <item >金牛</item>
        <item >成华</item>
        <item >高薪</item>
        <item >青羊</item>
        <item >武侯</item>
        <item >锦江</item>
    </string-array>
    
     <string-array name="zy_qu">
        <item >安岳</item>
        <item >乐至</item>
        <item >1</item>
        <item >2</item>
        <item >3</item>
    </string-array>
</resources>





版权声明:本文为博主原创文章,未经博主允许不得转载。

多级下拉列表选择处理

多级下拉列表选择,总布局采用相对布局,设置listView的隐藏与显示来实现多级下拉列表的功能,并且需要选项之间有联动性...
  • Scorpio_gao
  • Scorpio_gao
  • 2016年05月27日 16:58
  • 992

easyui中实现多个下拉列表联动

先看下源码 $(function() { var provinceId = $('#provinceId').combobox({ url : 'provinceActio...
  • seamanjt
  • seamanjt
  • 2014年01月16日 19:48
  • 1887

[HTML] CSS + JS 多级下拉菜单

多级下拉菜单 //显示子菜单里的内容 function displaySubMenu(li) { var...
  • shylx123
  • shylx123
  • 2015年08月22日 20:34
  • 3376

多级下拉菜单插件

刚写了一个多级下拉菜单插件,如果要用可以去我的github看哦。 https://github.com/hqqxxf/test#多级下拉菜单插件...
  • u014682977
  • u014682977
  • 2015年08月07日 10:36
  • 520

JSP学习之路(一):JSP可输入下拉框编写代码

this.parentNode.nextSibling.value:的父节点即的兄弟节点。 this.value :去父节点中的值。 position:absolute:设置此属性值为 absol...
  • H90P0820
  • H90P0820
  • 2014年02月26日 14:54
  • 3047

ASP.NET(C#)初积累!(复选框全选,下拉框以及下拉框联动)

 复选框全选(javascript):DataGrid的模版列HeaderTemplate和ItemTemplate中各放一个CheckBox:                           /...
  • bydxyj
  • bydxyj
  • 2007年09月14日 16:52
  • 2429

通用多级下拉,js为主

java项目开始了,需要做个多级下拉,网上是有一大堆,但代码太长或不符合自己的要求;还来项目用的又觉得设计不太合理,所以再写一个吧。因为自己用.net比较多些,所以还是用.net项目先写,然后再发给组...
  • jontian
  • jontian
  • 2016年08月26日 12:41
  • 136

BIEE多层表头报表的制作方法

使用BIEE制作多层表头的报表大致
  • PacificPeng
  • PacificPeng
  • 2014年07月07日 15:49
  • 2410

多层json解析

JSON数据格式
  • u010924952
  • u010924952
  • 2016年04月07日 15:21
  • 2402

Hibernate 多层数据关联

Hibernate 多层数据关联   session = HibernateSessionFactory.getSession();   Criteria criteria = session.cre...
  • yehuiling
  • yehuiling
  • 2007年11月22日 10:14
  • 1026
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多层下拉框
举报原因:
原因补充:

(最多只允许输入30个字)