- 浏览: 265940 次
- 性别:
- 来自: 邯郸
文章分类
最新评论
-
sunbird.work:
niub,楼主真是太牛逼了
自定义Toast -
cuixuelei:
谢谢分享学习中
Android Listview表格 -
hilary3113:
kondoh 写道呵呵,看参数名 paramAbsListVi ...
ListView OnScrollListener详解(滑屏分页显示数据) -
kondoh:
呵呵,看参数名 paramAbsListView,就知道是反编 ...
ListView OnScrollListener详解(滑屏分页显示数据) -
ariel791331313:
恩,不错哦
ListView OnScrollListener详解(滑屏分页显示数据)
在指定的控件底下实现下拉框,就像登录QQ时可以在下拉框中选择自己QQ号。
实现思路:要想在指定的控件的底下实现下拉效果,首先,我们得确定要显示的起始坐标,首先得到控件的坐标,然后再由控件的坐标向下移动它本身的高度就是下拉框要显示的位置,得到显示位置就好办了。。在坐标的位置显示一个PopupWindow,布局文件为一个ListView就可以了,宽度为上面控件的宽度,高度就不用管了。代码只供参考:
/** * @Author: hilary * @Date: 2011-9-14 **/ public class PullDownList { private PopupWindow selectPopupWindow= null; private View parentView = null; private Activity activity = null; private ListView listView = null; private PullDownListAdapter pullListAdapter = null; private DeleteData deleteData = null; ArrayList<HashMap<String, Object>> data = null; private int[] location = new int[2]; private int height; private int width; /** * * @param _activity 调用此方法的Activity * @param _parentView 用来显示的PopupWindow的View * @param _ShowlocationView 基于那个控件显示 * @param _data 数据源 */ public PullDownList(Activity _activity, View _parentView, View _ShowlocationView, ArrayList<HashMap<String, Object>> _data){ activity = _activity; parentView = _parentView; _ShowlocationView.getLocationOnScreen(location); width = _ShowlocationView.getWidth(); height = _ShowlocationView.getHeight(); data = _data; initPopuWindow(); } /** * 初始化PopupWindow */ private void initPopuWindow(){ View loginwindow = (View) activity.getLayoutInflater().inflate(R.layout.popupwindow_pull_down, null); listView = (ListView) loginwindow.findViewById(R.id.popupwindow_pulldown_list); pullListAdapter = new PullDownListAdapter(activity, data); listView.setAdapter(pullListAdapter); selectPopupWindow = new PopupWindow(loginwindow, width,LayoutParams.WRAP_CONTENT, true); selectPopupWindow.setOutsideTouchable(true); selectPopupWindow.setBackgroundDrawable(new BitmapDrawable()); // popupWindow.setAnimationStyle(R.style.MenuAnimation); listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { setSelected((String) data.get(arg2).get("textView")); selectPopupWindow.dismiss(); } }); } /** * 显示PopupWindow窗口 * * @param popupwindow */ public void popupWindwShowing() { selectPopupWindow.showAtLocation(parentView, Gravity.NO_GRAVITY, location[0], location[1] + height); } /** * PopupWindow消失 */ public void dismiss(){ selectPopupWindow.dismiss(); } public void setOnDeleteData(DeleteData _deleteData){ deleteData = _deleteData; } public void setOnSelected(DeleteData _deleteData){ deleteData = _deleteData; } private void setSelected(String selectedItem){ if(deleteData != null){ deleteData.selected(selectedItem); } } private void setDelete(int position){ if(deleteData != null){ deleteData.deletePosition(position); } } public interface DeleteData { public void deletePosition(int position); public void selected(String position); } class PullDownListAdapter extends BaseAdapter { private ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); private Activity activity = null; public PullDownListAdapter(Activity _activity, ArrayList<HashMap<String, Object>> _list) { activity = _activity; list = _list; } public int getCount() { return list.size(); } public Object getItem(int position) { return list.get(position); } public long getItemId(int position) { return position; } public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(activity).inflate( R.layout.pull_down_list_item, null); holder.textView = (TextView) convertView .findViewById(R.id.pull_list_item_text); holder.imageView = (ImageView) convertView .findViewById(R.id.pull_list_item_image); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.textView.setText((CharSequence) list.get(position).get("textView")); // holder.imageView.setImageDrawable((Drawable) list.get(position).get("imageView")); holder.imageView.setOnClickListener(new OnClickListener() { public void onClick(View v) { setDelete(position); removeItem(position); } }); return convertView; } class ViewHolder { TextView textView; ImageView imageView; } private void removeItem(int position){ list.remove(position); notifyDataSetChanged(); } } }
发表评论
-
ObjectAnimator Property
2015-07-24 17:21 677The property animation system ... -
android 手机连接mac电脑
2015-05-19 14:41 627一些国产的android手机在mac电脑adb无法识别,即使 ... -
android studio 导入Jar包源码
2015-03-25 15:30 1777android studio导入jar包源码: 切换Ta ... -
Mac版 Android studio 快捷键(Keymap-Eclise Mac OS X)
2015-03-19 11:08 2018打开自动生成方法选择界面: command + N 全局搜 ... -
handlebars
2014-07-08 10:29 799最近一直在弄WebView,为了节省流量使用了模板块,模板存 ... -
Android IO
2014-07-08 10:01 648自从google IO 大会以后一直在想办法下载Androi ... -
Getting “411 Length Required” after a PUT request from HTTP Client
2014-06-13 14:48 3611在使用PUT发送请求时,代码逻辑是根据消息体的长度设置的,当 ... -
android内存分配(android:largeHeap)
2013-01-09 15:32 28295每个程序都很大的内 ... -
mac 上配置svn服务
2012-10-16 11:04 3184刚接手mac,闲来没事从 ... -
扩大View的点击范围
2012-09-07 15:57 1918扩大View的点击范围本人知道的有两种方法,在不影响界面效果的 ... -
App 开发者,求求你们别 push 了!
2012-09-02 09:41 1006北京时间8月21日消息,国外媒体周一刊登评论文章称,对于 ... -
Conversion to Dalvik format failed with error 2
2012-07-26 15:51 2641Conversion to Dalvik format fai ... -
ExpandableListView 无法加载列表数据(adapter不能正常加载数据)
2012-04-17 10:50 1850在使用ExpandableListView时,发现Adapte ... -
Manifest.permission
2012-03-22 12:55 0Android程序在运行时,需要一些权限,这些权限需要在Man ... -
Android 内存溢出(Out Of Memory)的总结
2012-03-13 14:19 5580在做的程序老是内存 ... -
GestureDetector 与 SimpleOnGestureListener应用
2011-12-28 14:09 6040GestureDetector 是android中手势应用类, ... -
ListView取消点击事件
2011-12-16 14:37 2910Listview的每个item点击的时候都会有点击的蓝 ... -
android include使用
2011-12-08 10:23 23506需要包含的xml文件,我这里就放了一个Button按钮: ... -
打包混淆时报:Conversion to Dalvik format failed with error 1
2011-11-24 18:42 2205在Android程序打包混淆时,遇到这个很郁闷的错误: ... -
Android 内存泄漏调试(转)
2011-11-22 16:55 1237一、概述 1二、Android(Java)中常见的容易引起内存 ...
相关推荐
下面我们将深入探讨Android下拉菜单(Spinner)的使用、配置以及相关知识点。 1. **Spinner的使用**: - 在布局文件中添加Spinner元素,通过`<Spinner>`标签定义。例如: ```xml android:id="@+id/my_spinner...
本文将深入探讨Android下拉菜单控件的封装类及其相关知识点。 首先,Android中的下拉菜单主要由两种组件实现:Spinner和PopupMenu。Spinner是Android SDK内置的一种控件,它可以直接在布局文件中声明,也可以在代码...
在Android应用开发中,...综上所述,创建一个具有美团风格并带有过滤功能的Android下拉菜单,需要对Spinner组件有深入理解,以及熟练运用Adapter和事件监听机制。同时,注重用户体验的优化,将使你的应用更加吸引用户。
创建Android下拉菜单通常涉及以下步骤: 1. **布局文件**:在XML布局文件中添加`Spinner`控件。例如: ```xml android:id="@+id/drop_down_menu" android:layout_width="wrap_content" android:layout_height=...
在Android开发中,下拉菜单(Spinner)是一个常见的UI组件,它允许用户从一组预定义的选项中选择一个。在本教程中,我们将深入探讨如何创建和使用Android的Spinner,并通过"SpinnerExample"这个示例项目来学习相关...
下面我们将深入探讨Android下拉菜单——DropMenu的实现方法、特性以及相关的编程知识点。 一、Spinner控件介绍 Spinner是Android SDK中提供的一种标准UI组件,它可以嵌入到布局中,用户点击后会展示一个下拉列表,...
在Android开发中,下拉菜单(Spinner)是一种常见的UI组件,它允许用户从一组预定义的选项中选择一个。在Android应用中,下拉菜单通常用于节省屏幕空间,因为它们只在用户点击时才会显示完整的选项列表。接下来,...
在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...
在Android开发中,Spinner是一个...通过设置Adapter、监听事件以及自定义样式,我们可以根据项目需求定制出满足用户体验的下拉菜单。在实际开发中,结合`spinnerDemo`这样的示例,开发者可以更好地理解和运用Spinner。
Android 13 原生系统下拉状态栏中是没有快捷截图按钮,现在需要添加快捷截图功能。 涉及修改的文件如下: modified: vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml modified: vendor/...
在Android开发中,下拉菜单通常用于实现用户交互,提供一种简洁的方式让用户在多个选项中进行选择。在本示例中,我们关注的是一个特定的应用场景:创建一个下拉菜单来选择星座。这个功能可能应用于各种应用,如星座...
本示例完整实现了自定义下拉菜单的功能,初学者可快速掌握自定义下拉菜单的技巧,有关具体的实现细节请参考博文:http://blog.csdn.net/l1028386804/article/details/48101651
总结来说,创建Android下拉菜单涉及的主要知识点有:使用PopupMenu类,菜单资源XML的定义,设置菜单项监听器以及在点击事件中展示菜单。通过理解和实践这些步骤,你可以轻松地在自己的应用中实现类似的交互功能。
在Android开发中,下拉菜单通常指的是Spinner控件或者AlertDialog结合ListView实现的交互式选择组件。这类组件在用户界面设计中扮演着重要角色,提供了一种简洁的方式供用户从预设选项中进行选择。下面我们将深入...
在Android应用开发中,下拉菜单(Dropdown Menu)是一种常见的用户界面元素,它允许用户从一组选项中选择一个。在大众点评和美团等应用程序中,下拉菜单通常用于展示分类、筛选条件等,提供便捷的操作体验。本项目是...
在Android开发中,创建一个简单粗暴的下拉菜单是一个常见的需求,这通常涉及到用户界面交互和自定义视图的设计。下面将详细讲解如何在Android中实现这样的功能。 首先,我们要明白Android中的下拉菜单主要指的是...
Android 实现上下文菜单、下拉菜单、选项菜单代码详解 Android 中的菜单系统是一个非常重要的组件,它提供了多种方式来帮助用户与应用程序进行交互。在本文档中,我们将详细介绍如何实现上下文菜单、下拉菜单和选项...