Android简易实战教程--第四十二话《Spinner下拉级联效果》

本文通过一个具体的例子展示了如何在Android应用中使用Spinner控件实现多级联动菜单。具体包括如何定义字符串资源、设置布局文件以及编写相应的Java代码来响应用户的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇承接第四十话第四十话《Spinner》

参考博客:http://blog.youkuaiyun.com/yayun0516

进入正题:

Strings加入第一级数据:

   <string-array name="province">  
        <item >水果</item>  
        <item >职位</item>  
        <item >动物</item>  
    </string-array> 

来个布局:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >  
  
    <LinearLayout  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:orientation="horizontal" >  
  
        <Spinner  
            android:id="@+id/spinner1"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:entries="@array/province"/>  
  
        <Spinner  
            android:id="@+id/spinner2"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content" />  
    </LinearLayout>  
  
    <TextView  
        android:text="nihao"
        android:id="@+id/text"  
        android:textColor="#00ff00"
        android:layout_width="match_parent"  
        android:layout_height="wrap_content" >  
    </TextView>  
  
</LinearLayout>

总共两级菜单,一个文本。

主活动代码如下:

package com.ydl.test;
import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
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 Spinner spinner1;  
    private Spinner spinner2;  
    private TextView textView;  
    private String string1;
    private String[][] dataStrings = { { "苹果", "香蕉", "梨子", "菠萝", "草莓", },  
            { "教师", "工人", "程序员", }, { "老虎", "狮子", "大象", }, };  
    private ArrayAdapter<CharSequence> adapter = null;  
  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState); // 生命周期方法  
        super.setContentView(R.layout.activity_main); // 设置要使用的布局管理器  
        spinner1 = (Spinner) findViewById(R.id.spinner1);  
        spinner2 = (Spinner) findViewById(R.id.spinner2);  
        textView = (TextView) findViewById(R.id.text);  
        spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {  
  

			public void onItemSelected(AdapterView<?> parent, View view,  
                    int position, long id) {  
                adapter = new ArrayAdapter<CharSequence>(MainActivity.this,  
                        android.R.layout.simple_spinner_item,  
                        dataStrings[position]);//根据position确定第二个spinner中要填充的数据  
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//设置点击下拉窗体的显示样式  
                //给spinner2设置adapter
                spinner2.setAdapter(adapter);  
                //parent指的是 spinner1
                string1 = parent.getItemAtPosition(position).toString();// 获取当前显示省份
            }  
  
            public void onNothingSelected(AdapterView<?> parent) {  
                // TODO Auto-generated method stub  
  
            }  
        });  
        
        spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {  
        	  
            public void onItemSelected(AdapterView<?> parent, View view,  
                    int position, long id) {  
            	//parent指的是 spinner2
                String string2 = parent.getItemAtPosition(position).toString();// 获取当前显示省份  
                textView.setText(string1 +" : "+ string2);  
  
            }  
  
            public void onNothingSelected(AdapterView<?> parent) {  
                // TODO Auto-generated method stub  
  
            }  
        });  
          
    }  
}

运行程序如下:

连通完成~

喜欢的朋友可以关注我哦,不定期更新简单有趣的Android小文~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值