展会信息港展会大全

Android 控件:使用下拉列表框--Spinner
来源:互联网   发布日期:2015-10-02 15:57:19   浏览:1765次  

导读:---恢复内容开始---一、前段代码复制代码<Spinner android:id="@+id/spin" android:paddingTop="10px"...

---恢复内容开始---

一、前段代码

复制代码

<Spinner

android:id="@+id/spin"

android:paddingTop="10px"

android:layout_width="fill_parent"

android:layout_height="50sp"/>

<Button

android:id="@+id/addList"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="添加" />

复制代码

二、接下来新建一个下拉列表的视图资源,即每个Item的TextView,我们把它命名为dropdown.xml,我们把它放到drawable中,代码为:

复制代码

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

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/tv1"

android:layout_width="fill_parent"

android:layout_height="20sp"

android:singleLine="true"

style="?android:attr/spinnerDropDownItemStyle"

/>

复制代码

三、创建Adapter

这里介绍下两个函数:

1.ArrayAdapter.ArrayAdapter(Context context,int textViewResourcId,List<String> objects)

我们可以通过它创建新的Adapter对象,这里需要三个参数:

(1)context上下文关系,就是这个Adapter属于哪个Activity,属于哪个应用程序。

(2)textViewResourcId TextView的资源id

(3)最后一个参数是你要向下拉列表中添加的数据,可以是一个静态的String数组,也可以是一个动态的List<String>;

2.AdapterView.setOnItemSelectedListener(OnItemSelectedListener listener),使用这个方法为Spinner对象设置监听器。这里参数是OnItemSelectedListener 接口,实现这个接口需要重写两个方法:

(1)public void onItemSelected(AdapterView<?> parent, View view,int position, long id)

这个方法中可以完成当选项被选中时要做的处理。四个参数的含义:

AdapterView<?> parent,这个类似context,只是范围比较下,指你当前操作的AdapterView

View view ,这个参数是你具体单击的那个TextView对象

int position 这个参数的意思是你单击的那个view在整个AdaterView中的位置

long id 单击view的id

(2)public void onNothingSelected(AdapterView<?> parent)

这个回调函数在AdapterView中没有选项时调用。

完整代码如下:

复制代码

private Spinner spinner;

private TextView tv;

private ArrayAdapter<String> adapter;

private static final String[] years = { "小于1年", "1年-3年", "3年-5年", "5年以上" };

private ArrayList<String> array = new ArrayList<String>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

if (savedInstanceState == null) {

getSupportFragmentManager().beginTransaction()

.add(R.id.container, new PlaceholderFragment()).commit();

}

spinner = (Spinner) findViewById(R.id.spin);

tv = (TextView) findViewById(R.id.textView1);

for (int i = 0; i < years.length; i++) {

array.add(years[i]);

}

adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, array);

adapter.setDropDownViewResource(R.drawable.dropdown);

spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

// TODO 自动生成的方法存根

String seleted = array.get(position);

tv.setText(seleted);

parent.setVisibility(View.VISIBLE);

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {

// TODO 自动生成的方法存根

tv.setText("您没有选择");

}

});

赞助本站

人工智能实验室

相关热词: android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港