Android之UI控件

Posted by jjx on April 1, 2016

本文主要包括以下内容

  1. Spinner的使用
  2. Gallery的使用

Spinner的使用

Spinner的实现过程是

  1. 在xml文件中定义Spinner的控件
  2. 在activity中获取Spinner控件
  3. 定义Spinner下拉列表项数组并将下拉项的内容添加到这个数组中,通过这个数组建立一个下拉列表的适配器
  4. 将上3中的适配器配置给获取的Spinner控件
  5. 设置下拉列表的显示样式
  6. 为获得的Spinner控件添加事件监听

在XML文件中定义

//在主XML中<include android:id="@+id/sp_chose" layout="@layout/spinner_down"/>

<?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="30dip"
         android:orientation="horizontal"
         android:background="@drawable/filter_bg"
         android:layout_marginTop="5dip"
         android:layout_marginLeft="5dip"
         android:layout_marginRight="5dip">

      <Spinner
           android:id="@+id/nearby_distance_spinner"
           style="@style/nearby_spinner_style" />
      <Spinner
           android:id="@+id/nearby_class_spinner"
           style="@style/nearby_spinner_style" />
      <Spinner
           android:id="@+id/nearby_away_spinner"
           style="@style/nearby_spinner_style" />
   

</LinearLayout>

其中背景图片为

这里写图片描述

nearby_spinner_style为

<style name="nearby_spinner_style">
        <item name="android:layout_width">0.0dip</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:background">@null</item>
        <item name="android:layout_marginTop">6dip</item>
        <item name="android:layout_weight">1.0</item>
    </style>

找到Spinner并初始化适配器

private void init() {
    // TODO Auto-generated method stub
    topText=(TextView) findViewById(R.id.tv_chose_shop);
    topText.setText(getIntent().getStringExtra("type"));
    disSpi=(Spinner) findViewById(R.id.nearby_distance_spinner);
    claSpi=(Spinner) findViewById(R.id.nearby_class_spinner);
    awaySpi=(Spinner) findViewById(R.id.nearby_away_spinner);
    
     disAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, DIS_DATE);
     claAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, CLASS_DATE);
     awayAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, AWAY_DATE);
    
    
    
  }

其中nearby_spinner_text为

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

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@android:id/text1"
     style="?android:attr/spinnerDropDownItemStyle"
     android:singleLine="true"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:gravity="center_vertical"
     android:textColor="#ffffff"
     android:textSize="12sp"/>

设置下拉列表的显示样式并且将适配器配置给spinner

//设置列表项显示风格为完全显示
  disAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    claAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    awayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    
    
    disSpi.setAdapter(disAdapter);
    claSpi.setAdapter(claAdapter);
    awaySpi.setAdapter(awayAdapter);
    
    disSpi.setSelection(2);
    claSpi.setSelection(0);
    awaySpi.setSelection(0);

设置监听事件

disSpi.setOnItemSelectedListener(new OnItemSelectedListener() {

      @Override
      public void onItemSelected(AdapterView<?> parent, View view,
          int position, long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), DIS_DATE[position], 0).show();
      }

      @Override
      public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub
        
      }
      
    });

完成,效果如下

这里写图片描述 这里写图片描述