前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android Spinner 组件的应用实例

Android Spinner 组件的应用实例

作者头像
砸漏
发布2020-10-22 14:26:20
6810
发布2020-10-22 14:26:20
举报
文章被收录于专栏:恩蓝脚本

Android Spinner 组件

Spinner: 下拉组件

使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现;

所用知识点:

数组适配器:ArrayAdapter 用于关系M 层和 C 层;

事件:OnItemSelectedListener;

案列:查看十二星座效果图:

xml:代码如下:

代码语言:javascript
复制
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:orientation="vertical"   
 
  <ScrollView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
 
    <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center_horizontal" 
      android:orientation="vertical"   
 
      <Spinner 
        android:id="@+id/spinner" 
        android:layout_width="300dp" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" /  
 
      <TextView 
        android:id="@+id/showInfo" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="15dp" 
        android:layout_marginRight="15dp" 
        android:gravity="center" 
        android:text=" " /  
    </LinearLayout  
  </ScrollView  
 
</LinearLayout  

java代码如下:

代码语言:javascript
复制
package com.example.spinnertest; 
import java.util.ArrayList; 
import android.app.Activity; 
import android.content.res.Resources; 
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 spinner; 
private TextView tx; 
private ArrayList<String  list = null; 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
/* 获取TextView 实体对象 , 用于显示星座的详细信息 */ 
tx = (TextView) findViewById(R.id.showInfo); 
/* 下拉组件测试 Spinner 对象首先获取 */ 
spinner = (Spinner) findViewById(R.id.spinner); 
/* 准备数据源 M , 用集合进行保存 */ 
list = new ArrayList<String ();  
list.add("Aries"); 
list.add("Taurus"); 
list.add("Gemini"); 
list.add("Cancer"); 
list.add("Leo"); 
list.add("Virgo"); 
list.add("Libra"); 
list.add("Scorpio"); 
list.add("Sagittarius"); 
list.add("Capricorn"); 
list.add("Aquarius"); 
list.add("Pisces"); 
/* 实现M 层 与C 层的关系 ,绑定数据 */ /* 参数1:上下文对象; 参数2:系统资源布局方式 ; 参数3:数据对象 */ 
ArrayAdapter<String  adapter = new ArrayAdapter<String (this, android.R.layout.simple_spinner_dropdown_item, list); 
/* 对V 层和C 层进行关系的绑定; */ 
spinner.setAdapter(adapter); 
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
/* 对所有的选择项进行监控 *//* 参3:当前选择项的ID 参4:被选择项在组中的位置,逻辑上与ID 相等,但代表的意义不一样 */ 
public void onItemSelected(AdapterView<?  arg0, View arg1, 
int id, long position) { 
// Toast.makeText(MainActivity.this, "你选择的是第:"+id+"值为:"+list.get(id), 1000).show(); 
/* 设置tx对象的值 */ 
String temp = getConstellation(id); 
tx.setText("\t"+temp); 
} 
@Override 
public void onNothingSelected(AdapterView<?  arg0) { 
// TODO Auto-generated method stub 
} 
}); 
} 
/* 显示星座的信息 */ 
protected String getConstellation(int id){ 
Resources rs = getResources(); 
String temp = ""; 
switch(id){ 
case 0: 
temp = rs.getString(R.string.Aries); 
break; 
case 1: 
temp = rs.getString(R.string.Taurus); 
break; 
case 2: 
temp = rs.getString(R.string.Gemini); 
break; 
case 3: 
temp = rs.getString(R.string.Cancer); 
break; 
case 4: 
temp = rs.getString(R.string.Leo); 
break; 
case 5: 
temp = rs.getString(R.string.Virgo); 
break; 
case 6: 
temp = rs.getString(R.string.Libra); 
break; 
case 7: 
temp = rs.getString(R.string.Scorpio); 
break; 
case 8: 
temp = rs.getString(R.string.Sagittarius); 
break; 
case 9: 
temp = rs.getString(R.string.Capricorn); 
break; 
case 10: 
temp = rs.getString(R.string.Aquarius); 
break; 
case 11: 
temp = rs.getString(R.string.Pisces); 
break; 
case 12: 
temp = rs.getString(R.string.Aries); 
break; 
} 
return temp; 
} 
} 

以上就是Android Spinner 组件的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档