- 浏览: 280650 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jasonking412:
鄙视抄袭,都TMD一样的。
Openfire red5.war下载已经配置 -
xhg19901120:
有没有下载地址啊
【转】Android 多级菜单 -
yxl2005play:
为什么是404?博主,求解
Openfire red5.war下载已经配置 -
tan2416:
回复看看。。。。。
实现在popwindow中展示listview列表 -
liufeng7600:
你好,求教: 我可不可以在pc上用web浏览器访问 Andr ...
android中实现JavaScript与Java之间实现互相调用
之前我实现了在listview中显示图片和checkbox,具体看这儿:http://gqdy365.iteye.com/blog/992340
接下来我将上述listview添加到popupwindow窗口中。关于这个listview我就再不多说了,主要是实现popupwindow和美化popupwindow。
先看看我做截图:
1、创建一个popupwindow,并设置相应的样式。
- private void popAwindow(View parent) {
- if (window == null ) {
- LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View v = lay.inflate(R.layout.popupwindow, null );
- v.setBackgroundDrawable(getResources().getDrawable(R.drawable.rounded_corners_view));
- //初始化按钮
- submit = (Button) v.findViewById(R.id.submit);
- submit.setOnClickListener(submitListener);
- cancel = (Button) v.findViewById(R.id.cancel);
- cancel.setOnClickListener(cancelListener);
- //初始化listview,加载数据。
- list=(ListView)v.findViewById(R.id.lv);
- MyAdapter adapter=new MyAdapter(Main. this );
- list.setAdapter(adapter);
- list.setItemsCanFocus(false );
- list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
- list.setOnItemClickListener(listClickListener);
- window = new PopupWindow(v, 500 , 260 );
- }
- //设置整个popupwindow的样式。
- window.setBackgroundDrawable(getResources().getDrawable(R.drawable.rounded_corners_pop));
- //使窗口里面的空间显示其相应的效果,比较点击button时背景颜色改变。
- //如果为false点击相关的空间表面上没有反应,但事件是可以监听到的。
- //listview的话就没有了作用。
- window.setFocusable(true );
- window.update();
- window.showAtLocation(parent, Gravity.CENTER_VERTICAL, 0 , 0 );
- }
- OnItemClickListener listClickListener = new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position,
- long id) {
- ViewHolder vHollder = (ViewHolder) view.getTag();
- // 在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。
- vHollder.cBox.toggle();
- MyAdapter.isSelected.put(position, vHollder.cBox.isChecked());
- }
- };
给按钮添加监听事件:
- OnClickListener submitListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- //这儿可以写提交数据的代码。
- closeWindow();
- }
- };
- OnClickListener cancelListener=new OnClickListener(){
- @Override
- public void onClick(View v){
- closeWindow();
- }
- };
- private void closeWindow(){
- //将每个checkbox的标记改为false,以便下次弹出window时是初始的状态。
- for ( int j = 0 ; j < MyAdapter.isSelected.size(); j++) {
- MyAdapter.isSelected.put(j, false );
- ViewHolder vHollder = (ViewHolder) list.getChildAt(j).getTag();
- vHollder.cBox.setChecked(false );
- }
- //提交数据时关闭popupwindow。
- if (window != null ) {
- window.dismiss();
- }
- }
在layout中新建popupwindow.xml文件,具体内容如下,主要是对window的布局:
- <?xml version= "1.0" encoding= "utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
- <TextView
- android:id="@+id/tip"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:textSize="18dip"
- android:background="@drawable/rounded_corners_list"
- android:text="这是一个popupWindow的例子" />
- <!-- 如果layout_width的值为fill_parent时,居中要用android:gravity="center" -->
- <ListView
- android:id="@+id/lv"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/rounded_corners_list" />
- <LinearLayout
- android:orientation="horizontal"
- android:layout_gravity="center"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/rounded_corners_list" >
- <Button
- android:id="@+id/submit"
- android:layout_width="100dip"
- android:layout_height="50dip"
- android:text="提交" />
- <Button
- android:id="@+id/cancel"
- android:layout_width="100dip"
- android:layout_height="50dip"
- android:text="取消" />
- </LinearLayout>
- </LinearLayout>
其中listView的布局的布局和实现请参考文章开头提到的另一篇文章。
新建rounded_corners_pop.xml,用于自定义窗口的样式文件,具体内容如下:
- <?xml version= "1.0" encoding= "utf-8" ?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <solid android:color="#ffffffff" />
- <stroke android:width="3dp" color= "#ffff8080" />
- <corners android:radius="10dp" />
- <padding
- android:left="3dp"
- android:top="3dp"
- android:right="3dp"
- android:bottom="3dp" />
- </shape>
这个就可以实现圆角的样式,周围的白边是通过在白的样式上面叠加黑色的来实现的。
其他样式文件大家可以参考上面的rounded_corners_pop.xml自己写。
2、在main.xml中添加按钮,一个用于显示window,一个用于隐藏window
- <?xml version= "1.0" encoding= "utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/lmain"
- >
- <Button
- android:id="@+id/myButton1"
- android:layout_width="100dip"
- android:layout_height="50dip"
- android:text="显示" />
- <Button
- android:id="@+id/myButton2"
- android:layout_width="100dip"
- android:layout_height="50dip"
- android:text="隐藏" />
- </LinearLayout>
在activity中初始化这两个按钮,并添加监听事件:
- OnClickListener bPop = new OnClickListener() {
- @Override
- public void onClick(View v) {
- popAwindow(v);
- }
- };
- OnClickListener boff = new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (window!= null ){
- window.dismiss();
- }
- }
-
};
评论
2 楼
tan2416
2013-01-04
回复看看。。。。。
1 楼
yahier
2012-08-13
Q1.popupwindow中的listview item点击无反应
解决方案:
infoPopup.setFocusable(true);
infoPopup.update();
解决方案:
infoPopup.setFocusable(true);
infoPopup.update();
发表评论
-
singleTop和singleTask有什么区别?(活动 Activity 四种加载模式)
2013-03-22 17:50 1444singleTop要求如果创建intent的时候栈顶已经有要 ... -
onCreateOptionsMenu和onPrepareOptionsMenu的差別在哪呢?
2012-09-17 16:25 1608在做菜单的功能,发现 ... -
android状态栏中多个通知冲突的问题
2012-09-11 17:49 6451网上看到的解决办法: 如果用相同的通知id, 该怎么 ... -
Anroid 异常:is not valid; is your activity running?
2012-08-29 11:23 1189是由于有activity时依附于另一个activity的, ... -
Android 如何让EditText不自动获取焦点
2012-08-15 11:42 3683在项目中,一进入一个页面, EditText默认就会自动获取焦 ... -
Animation
2012-07-31 23:51 842前面定义旋转,移动,缩放到什么程度, 后面是轴承点,根据这个点 ... -
删除android ScrollView边界阴影方法
2012-07-19 10:26 1331XML文件中添加以下方法: android:fadin ... -
Android的webview加载本地html、本apk内html和远程URL
2012-07-19 09:56 1697... -
如何在mac中创建android adb 环境
2012-05-03 23:31 1777Create an environment variable ... -
AlarmManager详细讲解
2012-04-21 23:33 1272AlarmManager的作用文档中的解释是:在特定的时刻为我 ... -
用Android代码实现打开USB调试
2012-03-20 17:52 9163打开Android手机的USB调试对于使用豌豆夹、调试程序等来 ... -
android ROM RAM 内部存储 系统存储 系统缓存区别
2012-03-16 14:58 5315内部存储┐ 系统存储├─物理位置是位于手机内部的非易失性存储 ... -
Android 读取MCC, MNC
2012-03-12 13:46 13323TelephonyManager telManager = ( ... -
Android 动画详解
2012-03-09 14:09 3741Tween动画又称“补间动画”、“中间动画”,这并不重要,就好 ... -
Region.Op
2012-02-29 17:37 973//INTERSECT 取两者交集,默认的方式 //DIF ... -
Eclipse中LogCat突然停止工作的解决
2012-01-18 17:34 1728... -
sdcard
2011-12-29 13:28 1050把文件放入SD卡 使用Activity的o ... -
Android 中自定义属性(attr.xml,TypedArray)的使用!
2011-10-07 17:39 1039在xml 文件里定义控件的属性,我们已经习惯了android ... -
Android 中自定义View的应用.
2011-10-07 17:38 847大家好我们今天的教程 ... -
android Canvas类介绍
2011-09-23 11:01 1344package com.yarin.android.E ...
相关推荐
在Android开发中,`popWindow`(PopupWindow)和`ListView`是两个常见的组件,用于创建弹出式菜单和展示可滚动的列表项。在这个项目中,开发者将`ListView`嵌入到`popWindow`中,以实现购物车功能,当用户点击时,...
`ListView`是一个可以展示多行数据的控件,通常用于显示列表或表格形式的数据。要使用`ListView`,你需要创建一个适配器(如`ArrayAdapter`或`BaseAdapter`),将数据绑定到`ListView`的各个条目上。每个条目可以...
在Android开发中,`PopWindow`和`ListView`是两个常用组件,它们分别用于实现弹出窗口和列表显示。在本项目中,"popwindow+listview"的封装结合了两者的优势,创建了一个可定制化的下拉菜单或者悬浮窗口,其中包含了...
安卓自定义下拉列表popwindow实现下拉+listview,不加动画很好的下拉格式,网上资料综合的例子,项目中用到了,可以自定义下拉的背景,等等一系列的扩展,感觉不错传上供分享,帮到有用的给个赞,没用的就算了...
在这个场景中,我们需要实现的功能是:当用户点击ListView中的某个条目时,一个PopWindow会从所点击的条目上方弹出,提供类似QQ消息长按后的删除选项。以下将详细讲解如何实现这一功能。 首先,我们需要创建一个...
在实现多选功能时,我们通常会在`ListView`的每一项中加入`CheckBox`。`CheckBox`是Android中的复选框组件,用户可以通过点击来选择或取消选择。结合`OnCheckedChangeListener`,我们可以监听到`CheckBox`状态的变化...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。"Listview侧滑删除(popwindow)"是一个常见的交互设计,允许用户通过在列表项上进行侧滑操作来触发一个弹出窗口(PopWindow),从而实现...
`PopWindow`是Android中的一个非常实用的组件,它可以在屏幕上的任意位置弹出一个小窗口,通常用于展示更多的操作选项或者快速设置。在本案例中,我们将使用`PopWindow`来实现下拉筛选菜单。 1. **创建布局文件**:...
在Android开发中,`PopWindow`是一个非常实用的组件,常用于实现各种临时弹出窗口,比如下拉菜单、快捷操作等。本教程将详细讲解如何利用`PopWindow`实现多级菜单的显示,这对于提升用户界面的交互性和便捷性至关...
6. **异常处理**:在实现过程中,要确保处理好各种异常情况,例如空指针异常、数据源为空等,以防止程序崩溃。 7. **优化性能**:在处理大量数据时,要考虑到ListView的性能问题,如使用ViewHolder来减少视图复用的...
ListView通过Adapter来填充数据,Adapter负责将数据转化为视图(View)并显示在ListView中。当用户长按时,我们需要监听ListView的OnItemLongClickListener事件。 1. **设置OnItemLongClickListener**:在Activity...
下面我们将详细探讨这两种技术以及它们在实现级联菜单中的应用。 首先,PopWindow是Android中一种轻量级的弹出窗口,它可以浮现在Activity之上,展示临时或辅助信息。在级联菜单中,PopWindow常用于创建下拉列表的...
在Android应用设计中,PopWindow经常被用来实现各种交互效果,比如下拉菜单、快捷操作面板等。本教程将详细介绍如何在Android中实现一个PopWindow的下拉效果。 首先,我们需要了解PopWindow的基本结构。PopWindow由...
在Android开发中,`PopupWindow` 和 `ListView` 是两种常用组件,它们分别用于实现弹出窗口和可滚动列表的功能。结合使用时,可以创建出交互性更强的UI设计,如下拉菜单、浮层选择器等。让我们深入探讨如何在Android...
- 在PopWindow中填充数据,比如设置ListView的Adapter,这样下拉菜单的选项就能展示出来。同时,你需要处理点击事件,当用户选择某个选项时,执行相应的操作。 4. **显示和隐藏PopWindow**: - 显示PopWindow可以...
标题"PopWindowListView"表明我们将讨论如何在`PopWindow`中嵌入一个列表视图(ListView),并且描述中提到的"popwindow背景半透明"暗示我们将关注如何设置`PopWindow`的背景透明度。 首先,我们来了解`PopWindow`...
在ListView中集成单选按钮(RadioButton)和多选按钮(CheckBox)是常见的需求,例如在创建选择列表、设置菜单等场景。本篇文章将深入探讨如何在ListView中实现单选与多选功能,并解决复用问题。 首先,我们需要...
在“一个popwindow的小demo”中,我们的目标是创建一个包含所有省份的PopWindow,用户可以选择任意省份,实现功能可能是设置或查询省份信息。这个PopWindow由多个TextView组成,每个TextView代表一个省份,当用户...
5. **数据添加**:在ListView中添加数据,需要通过Adapter的notifyDataSetChanged()方法通知ListView数据集已更新,从而触发ListView重新渲染。数据可以动态加载,例如从网络或数据库获取。 6. **条目点击事件处理*...
在Android开发中,`PopWindow`是一个非常实用的组件,常用于实现各种临时弹出窗口的效果,如下拉菜单、工具提示等。本教程将详细讲解如何封装一个`PopWindow`,实现下拉菜单的弹出和收缩效果。 首先,我们需要了解`...