OnItemSelectedListener事件与二级联动

来源:互联网 发布:人工智能物联网龙头股 编辑:程序博客网 时间:2024/04/20 12:59

基本知识点:OnItemSelectedListener事件

一、界面

   1、新建province.xml件。

  在“res/values”位置新建province.xml文件。

  (1province.xml文件位置如下图所示:


2province.xml内容如下:


3)代码

<?xml version="1.0" encoding="utf-8"?>
<resources>


    <string-array name="provarray">
        <item>河南省</item>
        <item>河北省</item>
        <item>山东省</item>
        <item>山西省</item>
    </string-array>

</resources>

2、打开“res/layout/activity_main.xml”文件。

   (1)分别从工具栏向activity拖出2个下拉列表框Spinner。控件来自Form Widgets


2)打开activity_main.xml文件。

<?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" >


    <Spinner
        android:id="@+id/province"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/provarray" />


    <Spinner
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


</LinearLayout>

二、OnItemSelectedListener事件 

  1、打开“src/com.genwoxue.twolevelmenu/MainActivity.java”文件。

  然后输入以下代码:

package com.example.hw;


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


public class MainActivity extends Activity {
//声明Spinner对象
private Spinner spinProvince = null;
private Spinner spinCity = null;
//定义城市数据,用于二级菜单
private String[][] arrCity = new String[][]{
{"郑州","开封","洛阳","安阳"},
{"石家庄","保定","邯郸","张家口"},
{"济南","青岛","烟台","日照"},
{"太原","晋中","吕梁","临汾"}
};
//声明数组适配器,用来填充城市列表
private ArrayAdapter<CharSequence> adapterCity = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//这句少了页面空白
//获取Spinner对象
spinProvince = (Spinner) super.findViewById(R.id.province);
spinCity = (Spinner) super.findViewById(R.id.city);
//为spinProvince控件注册OnItemSelected监听器
spinProvince.setOnItemSelectedListener(new OnItemSelectedListener() {
//选择省份,触发城市下拉列表框
@Override
public void onItemSelected(AdapterView<?> adapter, View view,
int position, long id) {
// 使用ArrayAdapter转换数据
MainActivity.this.adapterCity = new ArrayAdapter<CharSequence>(MainActivity.this, android.R.layout.simple_spinner_item,
MainActivity.this.arrCity[position]);
//使用adapterCity数据适配器填充spinCity
MainActivity.this.spinCity.setAdapter(MainActivity.this.adapterCity);
}


@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO 自动生成的方法存根 没有选择时执行

}
});
//为spinCity控件注册OnItemSelected监听器
spinCity.setOnItemSelectedListener(new OnItemSelectedListener() {
//选择城市,触发显示选择的城市
@Override
public void onItemSelected(AdapterView<?> adapter, View view,
int position, long id) {
// TODO 自动生成的方法存根 获取选择项的值
String sInfo = adapter.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), sInfo, Toast.LENGTH_LONG).show();
}


@Override
public void onNothingSelected(AdapterView<?> arg0) {
// 没有选择时执行

}
});
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

2、最终效果如下:


0 0
原创粉丝点击