重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Android的下拉列表是用Spinner 这个类来实现的。
创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站建设、做网站、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现),使用ArrayAdapter进行适配数据:
1:首先定义一个布局文件:
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/
/LinearLayout
2:建立数据源,使用数组,这些数据将会在Spinner下来列表中进行显示:
?xml version="1.0" encoding="utf-8"?
resources
string-array name="spinnername"
item北京/item
item上海 /item
item广州/item
item深圳/item
/string-array
/resources
3:接着在Activity中加入如下的代码(使用了系统定义的下拉列表的布局文件,当然也可以自定义)
// 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立数据源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter并且绑定数据源
ArrayAdapterString _Adapter=new ArrayAdapterString(this,android.R.layout.simple_spinner_item, mItems);
//绑定 Adapter到控件
mSpinner.setAdapter(_Adapter);
下载“GO桌面安卓版”
安装好GO桌面
选择 桌面设置——操作设置——下滑手势设置——显示/隐藏状态栏
完成(试一下是不是隐藏了)
Go桌面功能
酷炫DIY主题:快速下载和更换主题,可根据不同的主题进行自由搭配,DIY属于自己的个性主题。
屏幕切换特效:提供数十种屏幕切换特效,与流畅的屏幕滑动和动画效果配合更佳。
图标操作菜单:独创桌面图标和小插件弹出操作菜单,在桌面即可一步完成更换图标、重命名和卸载等操作。
功能表:首款支持功能表文件夹的桌面软件,内置进程管理器,和应用隐藏功能,带给你一步到位的玩机感受。
手势操作:支持自定义上滑、下滑、Home键、双击空白处、双指上滑、逆时针滑动、顺时针滑动,七种手势对应操作,快速激活功能表、通知栏及特定的应用程序。
屏幕预览:快速浏览切换屏幕、增减屏幕个数及调整屏幕位置,支持快速跨屏幕移动图标。
实现方式:
1、水平布局一个TextView和一个ImageView(小黑箭头)
2、实现点击ImageView的单击事件,弹出PopupWindow
3、PopupWindow中实现下拉列表
关键代码示例:
1、布局
LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
TextView/
ImageView /
/LinearLayout
2、单击事件
image.setBackgroundResource(R.drawable.gerendang_jiantou);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//弹出popupwindow
}
});
3、pupupwindow相关代码
ListView lv = new ListView(this);
adapter = new OptionsAdapter(context, datas); // 根据数据,设置下拉框显示
list.setAdapter(adapter);
/**
* 两种不同长度的下拉框,主要是为了适应屏幕的大小
*/
if (p_width 0) {
pWindow = new PopupWindow(v, par.getWidth(), 150);
} else {
pWindow = new PopupWindow(v, par.getWidth(), 300);
}
pWindow.setFocusable(true); //能够焦点获得
pWindow.setBackgroundDrawable(new BitmapDrawable()); //设置背景
pWindow.setOutsideTouchable(true); //外部点击关闭
pWindow.update(); //更新位置
在res/menu下新建一个menu类型的xml,并在内部编写item,每一个item是一个菜单项
在activity中重写onCreateOptionsMenu方法,并执行getMenuInflater.inflate方法关联刚才的菜单文件
在activity中重写onOptionsItemSelected方法,并在方法内编写菜单点击之后的逻辑
所使用的工具:电脑
开发工具:eclipse for Android , Android Studio
用adapter 写下拉菜单需要我们自己进行自定义,具体步骤如下:
1、自定义类,类成员与需要显示的字段一致;
public class Manufacture {
private String name ;
public Manufacture(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2、自定义adapter并继承自BaseAdapter实现相应方法,下面是贴出的代码示例:
public class MnufactureAdapter extends BaseAdapter{
private ListManufacture mList;
private Context context ;
//创建有参构造,参数需要传入两个1.自定义类类型的List,上下文参数
public MnufactureAdapter(ListManufacture mList, Context context) {
super();
this.mList = mList;
this.context = context;
}
//返回长度位所定义List的长度
@Override
public int getCount() {
return mList.size();
}
//返回位置为自定义list当前位置
@Override
public Object getItem(int position) {
return mList.get(position)
;
}
//返回条目的ID
@Override
public long getItemId(int position) {
return position;
}
//这里getView需方法需要重点说明和注意:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//创建一个LayoutInflater并传入上下文
LayoutInflater linflater = LayoutInflater.from(context);
//添加自定义item布局到convertView;(item内容和样式通过自定义方式实现)
convertView = linflater.inflate(R.layout.spinner_item_layout, null);
//初始化Item中控件
TextView textView =(TextView) convertView.findViewById(R.id.manufacture_list);
//设置控件显示内容
textView.setText(mList.get(position).getName());
return convertView;
}
}
3、在activity中需要添加如下代码:
//初始化布局文件中的spinner
Spinner mSpinner = (Spinner) findViewById(R.id.spinner1);
//初始化自定义的List,并往里面添加数据
ListManufacture manufacture = new ArrayListManufacture();
接着就是添加数据,在项目中我是添加的从网络上下载的数据解析之后进行添加的,具体的添加方式根据具体需要进行添加,我把自己的贴在下面供大家参考:
for(int i = 0;ilist.size();i++){
//添加数据源
manufacture.add(new Manufacture(list.get(i).getName()));
}
//实例化一个之前自定义的adapter并向里面添加数据
MnufactureAdapter madapter = new MnufactureAdapter(manufacture, ProductManageActivity.this);
参数说明:第一个参数是添加数据源后的List,第二个是当前activity的上下文。
最后一步,向spinner里面添加数据源
mSpinner.setAdapter(madapter);
在UI中经常会使用到下拉列表,在android控件中有两个下拉列表控件:
在xml中添加控件的使用:
主题:
这些都没有达到我要的效果:
android:entries // 传入的是values文件夹下的arrayx.xml内的数据
android:spinnerMode //显示模式有popmenu和dialog两种
android:prompt //当显示模式为dialog时生效,作用为显示dialog的标题内容