昨天在公司项目中遇到Spinner颜色,字体,大小的困惑。所以今天也总结一下这方面知识。这个其实很简单,要改变字体,颜色以及大小,无非就是不要用系统自带的样式。自已例外写一个layout调用就行了。我就是这样做的。本文例子还有Spinner两种弹出方式,下拉框以及弹出框。加载数据源的两种方式。下面看代码介绍。

本文项目源码地址:http://download.csdn.net/detail/qq_16064871/8583085

转载请注明出处: http://blog.csdn.net/qq_16064871

package com.example.customspinerdemo;import java.util.ArrayList;import java.util.List;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.Toast;public class MainActivity extends Activity implements OnItemSelectedListener {private Spinner mspinner1;private Spinner mspinner2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mspinner1 = (Spinner) findViewById(R.id.spinner1);if (mspinner1 != null) {mspinner1.setOnItemSelectedListener(this);}mspinner2 = (Spinner) findViewById(R.id.spinner2);if (mspinner2 != null) {mspinner2.setOnItemSelectedListener(this);}// 在这里两个layout自已定义效果,不用系统自带.// 数据源手动添加ArrayAdapter spinnerAadapter = new ArrayAdapter(this,R.layout.custom_spiner_text_item, getDataSource());spinnerAadapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);mspinner1.setAdapter(spinnerAadapter);// 通过加载xml文件配置的数据源ArrayAdapter spinnerAadapter2 = ArrayAdapter.createFromResource(this,R.array.spiner2_array, R.layout.custom_spiner_text_item);spinnerAadapter2.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);mspinner2.setAdapter(spinnerAadapter2);}public List getDataSource() {List spinnerList = new ArrayList();spinnerList.add("北京");spinnerList.add("上海");spinnerList.add("广州");spinnerList.add("北京");spinnerList.add("上海");spinnerList.add("广州");return spinnerList;}@Overridepublic 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;}@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {if (arg0.getId() == R.id.spinner1) {String itemString = mspinner1.getItemAtPosition(arg2).toString();Toast.makeText(this, "你选中的是" + itemString, Toast.LENGTH_SHORT).show();return;} else if (arg0.getId() == R.id.spinner2) {String itemString2 = mspinner2.getItemAtPosition(arg2).toString();Toast.makeText(this, "你选中的是" + itemString2, Toast.LENGTH_SHORT).show();return;}}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}}

custom_spiner_text_item.xml

custom_spinner_dropdown_item.xml

activity_main.xml

                                                

在xml里面配置Spinner时默认是下拉框的。

如果要换成弹出框加上这个android:spinnerMode="dialog"

以其他监听触发spinner语句:mspinner.performClick();

本文项目源码地址:http://download.csdn.net/detail/qq_16064871/8583085

转载请注明出处: http://blog.csdn.net/qq_16064871



更多相关文章

  1. android 适配器notifyDataSetChanged无法刷新问题解决
  2. 杂乱之android的Gallery图像展示应用
  3. Android(安卓)UI 之实现多级列表TreeView
  4. Android使用Intent启动其他非系统应用程序的方法
  5. android listview的适配器------baseadapter
  6. Android(安卓)RxJava 实际应用讲解:合并数据源 & 同时展示
  7. Android(安卓)kotlin和java反编译后的smali 有什么区别?
  8. adb shell 是什么,如何进入?
  9. Android有效获取状态栏(StatusBar)高度的方法

随机推荐

  1. GreenDao 连接与关闭Sqlite数据库
  2. android计时器 message+handler; timer+t
  3. Intent的定义及用法
  4. Android(安卓)studio取消上次打开的工程
  5. Android(安卓)获取货币单位
  6. RecycleView间隔线
  7. android判断当前手机是否是小米
  8. android使用opengl es2.0播放视频
  9. Android(安卓)左边滑动菜单栏
  10. Android(安卓)屏幕宽度、高度