• ANDROID_MARS学习笔记_S02_001_Spinner


    1.strings.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <resources>
     3 
     4     <string name="app_name">S02_E01_SpinnerEtc</string>
     5     <string name="hello_world">Hello world!</string>
     6     <string name="action_settings">Settings</string>
     7 
     8     <string-array name="planets">
     9         <item>地球</item>
    10         <item>火星</item>
    11         <item>水星</item>
    12         <item>木星</item>
    13     </string-array>
    14 </resources>

    2.activity_main.xml

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context="com.example.s02_e01_spinneretc.MainActivity" >
    10 
    11     <Spinner 
    12         android:id="@+id/mSpinner"
    13         android:layout_width="match_parent"
    14         android:layout_height="wrap_content"/>
    15 
    16 </RelativeLayout>

    3.item.xml自定义下拉项用

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:orientation="vertical"
     4     android:layout_width="fill_parent"
     5     android:layout_height="fill_parent"
     6     >
     7 <TextView  
     8     android:id="@+id/textViewId"
     9     android:layout_width="fill_parent" 
    10     android:layout_height="wrap_content" 
    11     />
    12 </LinearLayout>

    4.java

     1 package com.example.s02_e01_spinneretc;
     2 
     3 import android.annotation.SuppressLint;
     4 import android.os.Bundle;
     5 import android.support.v7.app.ActionBarActivity;
     6 import android.view.Menu;
     7 import android.view.MenuItem;
     8 import android.view.View;
     9 import android.widget.AdapterView;
    10 import android.widget.AdapterView.OnItemSelectedListener;
    11 import android.widget.ArrayAdapter;
    12 import android.widget.Spinner;
    13 
    14 @SuppressLint("NewApi")
    15 public class MainActivity extends ActionBarActivity implements OnItemSelectedListener{
    16 
    17     private Spinner mSpinner;
    18     @Override
    19     protected void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21         setContentView(R.layout.activity_main);
    22         mSpinner = (Spinner) findViewById(R.id.mSpinner);
    23         // Create an ArrayAdapter using the string array and a default spinner layout
    24         ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets, android.R.layout.simple_spinner_item);
    25         // Specify the layout to use when the list of choices appears
    26         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    27         // Apply the adapter to the spinner
    28         mSpinner.setAdapter(adapter);
    29         mSpinner.setPrompt("测试");
    30         mSpinner.setOnItemSelectedListener(this);
    31     }
    32 
    33     @Override
    34     public boolean onCreateOptionsMenu(Menu menu) {
    35         // Inflate the menu; this adds items to the action bar if it is present.
    36         getMenuInflater().inflate(R.menu.main, menu);
    37         return true;
    38     }
    39 
    40     @Override
    41     public boolean onOptionsItemSelected(MenuItem item) {
    42         // Handle action bar item clicks here. The action bar will
    43         // automatically handle clicks on the Home/Up button, so long
    44         // as you specify a parent activity in AndroidManifest.xml.
    45         int id = item.getItemId();
    46         if (id == R.id.action_settings) {
    47             return true;
    48         }
    49         return super.onOptionsItemSelected(item);
    50     }
    51 
    52     @Override
    53     public void onItemSelected(AdapterView<?> parent, View view, int position,
    54             long id) {
    55         System.out.println(parent.getItemAtPosition(position));
    56         
    57     }
    58 
    59     @Override
    60     public void onNothingSelected(AdapterView<?> parent) {
    61         System.out.println(parent);
    62         
    63     }
    64 }

    5.自定义下拉源

     1 package mars.spinner;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import android.app.Activity;
     7 import android.os.Bundle;
     8 import android.view.View;
     9 import android.widget.AdapterView;
    10 import android.widget.ArrayAdapter;
    11 import android.widget.Spinner;
    12 import android.widget.AdapterView.OnItemSelectedListener;
    13 
    14 public class MainActivity extends Activity {
    15     /** Called when the activity is first created. */
    16     //声明Spinner对象
    17     private Spinner spinner = null;
    18 
    19     @Override
    20     public void onCreate(Bundle savedInstanceState) {
    21         super.onCreate(savedInstanceState);
    22         setContentView(R.layout.main);
    23         //通过ID,得到Spinner对象
    24         spinner = (Spinner) findViewById(R.id.spinnerId);
    25         List<String> list = new ArrayList<String>();
    26         list.add("test1");
    27         list.add("test2");
    28         //调用ArrayAdapter的构造函数来创建ArrayAdapter对象
    29         //第一个参数是指上下文对象
    30         //第二个参数指定了下拉菜单当中每一个条目的样式
    31         //第三个参数指定了TextView控件的ID
    32         //第四个参数为整个列表提供数据
    33         ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textViewId,list);
    34         //通过createFromResource方法创建一个ArrayAdapter对象
    35         //第一个参数是指上下文对象
    36         //第二参数引用了在strings.xml文件当中定义的String数组
    37         //第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可替换为自己定义的布局文件
    38         /*ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    39                 this, R.array.planets_array,
    40                 android.R.layout.simple_spinner_item);
    41 */        //设置Spinner当中每个条目的样式,同样是引用一个Android系统提供的布局文件
    42         //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    43         
    44         spinner.setAdapter(adapter);
    45         spinner.setPrompt("测试");
    46         //为spinner对象绑定监听器
    47         spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
    48     }
    49     //这个监听器主要用来监听用户选择列表的动作
    50     class SpinnerOnSelectedListener implements OnItemSelectedListener{
    51         
    52         //当用户选定了一个条目时,就会调用该方法
    53         @Override
    54         public void onItemSelected(AdapterView<?> adapterView, View view, int position,
    55                 long id) {
    56             String selected = adapterView.getItemAtPosition(position).toString();
    57             System.out.println(selected);
    58         }
    59 
    60         @Override
    61         public void onNothingSelected(AdapterView<?> adapterView) {
    62             // TODO Auto-generated method stub
    63             System.out.println("nothingSelected");
    64         }
    65         
    66     }
    67 }
  • 相关阅读:
    thrift ssl 证书整理
    snmp学习笔记
    你必须了解的Session的本质
    安装大文件提示错误
    说说大型高并发高负载网站的系统架构(更新)
    【错误】未能找到类型或命名空间名称XXXX和未能解析引用的程序
    js调用后台代码的几种方式
    HTTP 错误 401.1
    万能的编程语言不要习惯性地把工具当作你天性缺陷的遮羞布
    PostgreSQL与MySQL比较
  • 原文地址:https://www.cnblogs.com/shamgod/p/5187081.html
Copyright © 2020-2023  润新知