Spinner类似于combobox,下拉菜单。用于数据显示。用法总结如下:

如果单一选取android内置的xml文件来显示spinner,就不需要重新定义。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

以上图,第一幅是使用android内置的drop_down_item,后者是自定义的下拉显示方式。

第一种:

adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, str);

adapter.setDropDownViewResource(R.layout.my_dropdown);

spinner.setAdapter(adapter);

ArrayAdapter的构造函数中,有三个参数:上下文;下拉菜单样式;菜单条目内容,而setDropDownViewResource()方法,定义了点开以后,菜单中每一行显示的样子。

接下来,要相应点击事件,也就是:setOnItemSelectedListener(),其中回调函数为:onItemSelected(AdapterView> parent, View view,int position, long id).

他们的意义是://parent  发生选中事件的 AbsListView.

//view  AbsListView 中被选中的视图.

//position  视图在一览中的位置(索引).

//id  被点击条目的行 ID.

spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {

@Override

//parent 发生选中事件的 AbsListView.

//view AbsListView 中被选中的视图.

//position 视图在一览中的位置(索引).

//id 被点击条目的行 ID.

public void onItemSelected(AdapterView> arg0, View arg1,

int arg2, long arg3) {

// TODO Auto-generated method stub

Toast.makeText(getApplicationContext(), str[arg2], Toast.LENGTH_LONG).show();

arg0.setVisibility(View.VISIBLE);

}

@Override

public void onNothingSelected(AdapterView> arg0) {

// TODO Auto-generated method stub

}

});而若要自行定义spinner样子,则会有如下xml:

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

android:id="@+id/text1"

android:layout_width="wrap_content"

android:layout_height="30dip"

android:singleLine="true"

style="?android:attr/spinnerDropDownItemStyle" />

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐