Spinner的使用
来源:互联网 发布:matlab有限元编程 编辑:程序博客网 时间:2024/06/10 22:42
1.首先建立一个水平线性布局管理器,在线性布局器中建立两个列表框,第一个列表框指向数据数组,第二个为空列表框,实现代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Spinner
android:id="@+id/spinner1"
android:prompt="@string/port"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/cityname"/>
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/portm"
/>
</LinearLayout>
2、新建一个array.xml,为第一个列表框设置列表项,有关代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="cityname">
<item >广西-南宁</item>
<item >广西-钦州</item>
<item>广西-北海</item>
<item>广西-防城</item>
</string-array>
</resources>
3.在主方法中建立事件监听器,当选择第一个列表中的值时,列表二中的值也跟着改变,有关代码如下:
package com.example.temp;
import android.os.Bundle;
import android.app.Activity;
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.TextView;
public class SpinerDemo extends Activity {
private Spinner spinner1=null;
private Spinner spinner2=null;
private TextView text=null;
/******************定义二级列表****************************/
private String area[][]={{"邕宁区","青秀区","江南区","西乡塘","武鸣县","马山县","宾阳"
,"横县"},
{"灵山","浦北","钦南区","钦北区"},
{"合浦","银滩","铁山港"},
{"东兴","上思"}};
private ArrayAdapter<CharSequence>adapter=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_spiner_demo);
this.spinner1=(Spinner)super.findViewById(R.id.spinner1); //获取spinner1的位置
this.spinner2=(Spinner)super.findViewById(R.id.spinner2);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO 自动生成的方法存根
SpinerDemo.this.adapter=new ArrayAdapter<CharSequence>(
SpinerDemo.this,android.R.layout.simple_spinner_item,
SpinerDemo.this.area[position]);
SpinerDemo.this.spinner2.setAdapter(adapter); //列表二关联adapter
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO 自动生成的方法存根
}});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.spiner_demo, menu);
return true;
}
}
效果图:
本实例中,关键是弄清楚ArrayAdapter与SPinner的关联和有关参数的联系。实现代码非常灵活,并且代码简洁易理解!
1.首先建立一个水平线性布局管理器,在线性布局器中建立两个列表框,第一个列表框指向数据数组,第二个为空列表框,实现代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Spinner
android:id="@+id/spinner1"
android:prompt="@string/port"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/cityname"/>
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/portm"
/>
</LinearLayout>
2、新建一个array.xml,为第一个列表框设置列表项,有关代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="cityname">
<item >广西-南宁</item>
<item >广西-钦州</item>
<item>广西-北海</item>
<item>广西-防城</item>
</string-array>
</resources>
3.在主方法中建立事件监听器,当选择第一个列表中的值时,列表二中的值也跟着改变,有关代码如下:
package com.example.temp;
import android.os.Bundle;
import android.app.Activity;
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.TextView;
public class SpinerDemo extends Activity {
private Spinner spinner1=null;
private Spinner spinner2=null;
private TextView text=null;
/******************定义二级列表****************************/
private String area[][]={{"邕宁区","青秀区","江南区","西乡塘","武鸣县","马山县","宾阳"
,"横县"},
{"灵山","浦北","钦南区","钦北区"},
{"合浦","银滩","铁山港"},
{"东兴","上思"}};
private ArrayAdapter<CharSequence>adapter=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_spiner_demo);
this.spinner1=(Spinner)super.findViewById(R.id.spinner1); //获取spinner1的位置
this.spinner2=(Spinner)super.findViewById(R.id.spinner2);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO 自动生成的方法存根
SpinerDemo.this.adapter=new ArrayAdapter<CharSequence>(
SpinerDemo.this,android.R.layout.simple_spinner_item,
SpinerDemo.this.area[position]);
SpinerDemo.this.spinner2.setAdapter(adapter); //列表二关联adapter
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO 自动生成的方法存根
}});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.spiner_demo, menu);
return true;
}
}
效果图:
本实例中,关键是弄清楚ArrayAdapter与SPinner的关联和有关参数的联系。实现代码非常灵活,并且代码简洁易理解!
- (Spinner) android中Spinner的使用
- Spinner 的使用
- Spinner控件的使用
- Spinner的使用
- Spinner的使用
- Spinner的简单使用
- Android Spinner的使用
- Spinner控件的使用
- spinner的使用详解
- spinner组件的使用
- android spinner的使用
- Spinner的使用
- Spinner组件的使用
- Spinner的使用
- Spinner的使用
- spinner的简单使用
- Spinner的使用
- Android Spinner 的使用
- paip.日志中文编码原理问题本质解决python
- D3D中D3DFVF_XYZ和D3DFVF_XYZRHW的区别
- 今天笔试碰到了这道题
- eclipse在异常关闭后,无法启动workspace问题的解决
- typedef struct BsTreeNode
- Spinner的使用
- paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结
- publicstaticvoidmain
- paip.python3 的类使用跟python2 的不同之处
- Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- public class ExcelImageTes
- 一个程序员的职业规划
- cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建运行工程
- 报表的简单使用说明