spinner,也就是下拉列表。在android中的下拉列表和windows中略有不同 ,它一弹出对话框的形式出现。
创建一个spinner的方法:
1、在布局文件中声明
android:id = "@+id/spinnerId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
2、在strings.xml中声明一个数组
- 火星
- 水星
- 地球
- 月亮
3、创建一个ArrayAdapter
//第一个参数是上下文对象,第二个参数引用了在strings.xml中定义的数组,第三个参数是指定spinner的样式,
是一个系统自带的布局文件
ArrayAdapter
adapter = ArrayAdapter.createFromResource(
this,
R.array.planets_array,
android.layout_simple_spinner_item
);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ArrayAdapter的另外一种创建方法
List list = new ArrayList();
list.add("test1");
list.add("test2");
//第二个参数指定每一个下拉列表的样式,第三个是TextView控件的id,第四个参数为整个列表提供数据
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textViewId, list);
4、得到spinner对象
spinner = (Spinner)findViewById(R.id.spinnerId);
spinner.setAdapter(adapter);
spinner.setPrompt("测试");
源代码:
MainActivity.java
-
public class MainActivity extends Activity
-
{
-
-
private Spinner spinner = null;
-
@Override
-
protected void onCreate(Bundle savedInstanceState)
-
{
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
//得到spinner对象
-
spinner = (Spinner)findViewById(R.id.spinnerId);
-
//创建一个ArrayAdapter对象
-
//第一个参数是上下文对象,第二个参数引用了在strings.xml中定义的数组,第三个参数是指定spinner的样式,是一个系统自带的布局文件
-
/* ArrayAdapter adapter = ArrayAdapter.createFromResource(
-
this,
-
R.array.planets_array,
-
android.R.layout.simple_spinner_item
-
);
-
//设置spinner中每一个条目的样式,引用系统文件
-
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
*/
-
//ArrayAdapter的另外一种创建方法
-
List<String> list = new ArrayList<String>();
-
list.add("test1");
-
list.add("test2");
-
@SuppressWarnings("unchecked")
-
//第二个参数指定每一个下拉列表的样式,第三个是TextView控件的id,第四个参数为整个列表提供数据
-
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textViewId, list);
-
-
//设置adapter
-
spinner.setAdapter(adapter);
-
//设置标题
-
spinner.setPrompt("测试");
-
//绑定监听器
-
spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
-
}
-
-
class SpinnerOnSelectedListener implements OnItemSelectedListener{
-
//arg0是arg1的父控件 arg1是选中的条目 arg2是位置 arg3是id
-
@Override
-
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
-
long arg3)
-
{
-
// TODO Auto-generated method stub
-
-
}
-
-
@Override
-
public void onNothingSelected(AdapterView<?> arg0)
-
{
-
// TODO Auto-generated method stub
-
-
}
-
}
-
@Override
-
public boolean onCreateOptionsMenu(Menu menu)
-
{
-
// Inflate the menu; this adds items to the action bar if it is present.
-
getMenuInflater().inflate(R.menu.main, menu);
-
return true;
-
}
-
-
}
string.xml
-
<?xml version="1.0" encoding="utf-8"?>
-
<resources>
-
-
<string name="app_name">spinner</string>
-
<string name="action_settings">Settings</string>
-
<string name="hello_world">Hello world!</string>
-
<string-array name = "planets_array">
-
<item>火星</item>
-
<item>水星</item>
-
<item>地球</item>
-
<item>月亮</item>
-
</string-array>
-
-
</resources>
activity_main.xml
-
<RelativeLayout xmlns:android=""
-
xmlns:tools=""
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:paddingBottom="@dimen/activity_vertical_margin"
-
android:paddingLeft="@dimen/activity_horizontal_margin"
-
android:paddingRight="@dimen/activity_horizontal_margin"
-
android:paddingTop="@dimen/activity_vertical_margin"
-
tools:context=".MainActivity" >
-
-
<Spinner
-
android:id = "@+id/spinnerId"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
/>
-
</RelativeLayout>
item.xml
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout xmlns:android=""
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:orientation="vertical" >
-
-
<TextView
-
android:id="@+id/textViewId"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
/>
-
-
-
</LinearLayout>
阅读(13634) | 评论(0) | 转发(1) |