组件的使用(一)Spinner的使用

Spinner即下拉菜单。

在android中实现Spinner组件需要以下三个步骤:

1.在XML文件中定义标签Spinner

<=”match_parent” android:layout_height=”wrap_content” <!–其它属性略–> />

2.在Strings.xml文件中声明items

===>

3.Java代码实现Controller 我们需要BaseAdapter将字符串数据传给Spinner UI组件,而实现BaseAdapter必须覆盖一些方法。 代码片示例:

//数据域Spinner spinner;(Bundle savedInstanceState) {this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏super.onCreate(savedInstanceState);setContentView(R.layout.register);processSpinner();//处理下拉菜单spinner}(){spinner=(Spinner)findViewById(R.id.spinner);//adapter 作为spinner的适配器BaseAdapter baseAdapter=new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {TextView spinnerItemTextView=new TextView(Register.this);spinnerItemTextView.setText(” “+getResources().getText(messageIds[position]));spinnerItemTextView.setTextColor(Color.BLACK);spinnerItemTextView.setTextSize(16);return spinnerItemTextView;}(int arg0) {;}@Overridepublic Object getItem(int arg0) {;}() {;}};spinner.setAdapter(baseAdapter);//为spinner设置adapter}

如果要为Spinner Items设置点击事件的话,,可以这么做:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {(AdapterView<?> parent, View view,int position, long id) {String str=parent.getItemAtPosition(position).toString();Toast.makeText(SpinnerActivity.this, “你点击的是:”+str, 2000).show();}(AdapterView<?> parent) {// TODO Auto-generated method stub}});

注意: 其实,String资源也可以写成另一种形式:

<string-array name=”spinnername”><item>北京</item><item>上海 </item><item>广州</item><item>深圳</item></string-array>

对应的java代码中是建立String数组而不是String ID数组。

// 建立String数组存储Spinner数据String[] mItems = getResources().getStringArray(R.array.spinnername);

——————————————————————————————————————————————– 2015.7.25 eidt 笔者在用BaseAdapter时出现了如下问题: 生成的下拉列表item的分割线是黑的,看起来很难看。leader让改掉颜色,但笔者查遍api,并无设置此颜色的方法。最后百度到有同学遇到和我一样的问题。结果采用人家的方法,就ok了。 方法是修改当前Activity的主题。 具体: 1.在styles.xml文件下自定义分割线风格。 示例:

<style name=”mySpinnerStyle” parent=”android:style/Widget.ListView.DropDown”><item name=”android:divider”>#000000</item><item name=”android:dividerHeight”>2dp</item></style>

2.在styles文件的名叫AppTheme的style标签中声明上面刚刚定义的风格。 示例:

=”AppBaseTheme”><!. –><>@style/mySpinnerStyle</item></style>

(其中的 < item > 标签是新声明的)

3.在manifest文件下此activity标签的属性中添加刚刚设置的主题。 示例:

<activity===>

(其中android:theme=”@style/AppTheme”这条属性是刚刚添加的)

艰苦能磨练人的意志。

组件的使用(一)Spinner的使用

相关文章:

你感兴趣的文章:

标签云: