popwindow+listview

基于PopWindow+Listview实现弹窗选择的界面实现 最近在Android项目中用到了基于弹窗(PopWIndow)+ Listview结合的弹窗选项框的界面。 1. MainActivity package com.steven.popwindowtest; import android.app.ActionBar; import android.app.Activity; import android.content.Context 阅读详情

实现下拉菜单,spinner一般也能够实现,但自定义比较麻烦,比如spinner有默认值时,还得动态添加spinner默认值,而用popwindow+listview也能实现相同的效果,并且自定义比较简单。

这里写图片描述
这里写图片描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.spinner.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:background="#10000000"
        android:gravity="center_vertical"
        android:text="选择状态" />

</LinearLayout>

popwindow填充的listview

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ListView
        android:background="#10000000"
        android:id="@+id/listView"
        android:layout_width="80dp"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

listview每个item代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:background="#10000000"
        android:id="@+id/tv_text"
        android:layout_width="match_parent"
        android:layout_height="30dp" />
</LinearLayout>
package com.example.spinner;

import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.PopupWindow;

import java.util.ArrayList;

import static com.example.spinner.R.layout.listview;

public class MainActivity extends AppCompatActivity {
    private Button button;
    private ArrayList list = new ArrayList();
    private ListView listView;
    private MyAdapter adapter;
    private  boolean isShow;
    private PopupWindow popupWindow;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        initDate();
        initPop();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(popupWindow.isShowing()){
                    popupWindow.dismiss();
                }else{
                    popupWindow.showAsDropDown(button);
                }
            }
        });
       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
               button.setText(list.get(i)+"");
           }
       });
    }
    private void initPop() {
        View view= LayoutInflater.from(this).inflate(listview,null);
        adapter=new MyAdapter(this,list);
        listView= (ListView) view.findViewById(R.id.listView);
        listView.setAdapter(adapter);
        popupWindow =new PopupWindow(view,
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setBackgroundDrawable(new BitmapDrawable());
        popupWindow.setFocusable(true);
        popupWindow.setContentView(view);
    }
    private void initDate() {
        list.add("0");
        list.add("1");
        list.add("2");
    }

}
package com.example.spinner;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;

/**
 * Created by Administrator on 2017/1/1.
 */

public class MyAdapter extends BaseAdapter {

    private Context context;
    private ArrayList list;
    public MyAdapter(Context context,ArrayList list){
        this.context=context;
        this.list=list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {
        ViewHolder vh;
        if (convertView == null) {
            vh = new ViewHolder();
            convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
            vh.textview = (TextView) convertView.findViewById(R.id.tv_text);
            convertView.setTag(vh);
        } else {
            vh = (ViewHolder) convertView.getTag();
        }
        vh.textview.setText(list.get(position) + "");
        return convertView;
    }
    static class ViewHolder {
        TextView textview;
    }
}
android 基于EditView+PopWindow+Listview实现可输入检索式下拉框 开发过程中经常使用Spinner标签,但如果数据量太多,用户下拉选择效率低,体验差。为了解决这个问题,可以使用PopWindow+listView实现可输入检索式下拉框。 实现思路:1、请求后台数据,将数据放入ListView中。 1、因为是可输入,所以页面元素使用EditView。为editview设置addTextChangedListener监听事件,该方法中代码逻辑:如果获取当前字符,对后台请求得list进行删选,根据删选后的list,将ListView更新,弹出PopWindow。 2、Po 阅读详情

相关推荐

Android使用popwindow弹窗显示listview表格

Android使用popwindow弹窗显示listview表格,button按钮点击弹出一个表格,点击其他地方消失,向下滑动,代码可以直接运行。效果图本人博客有。

Android中popuwindow中使用listview

在Android中,一个简单的popuwindow已经不能满足业务的需求了,我们可以使用popuwindow装listview来展示数据…… 首先定义一个popuwindow布局,里面就是一个listview,上代码: xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schema

会飞的小驴粪蛋 1784

popWindow+Listview的实现

利用将Listview显示在popWindow中,简单的实现我的购物车中的内容,点击显示在屏幕的下方。希望能对大家有所帮助

【Android】PopupWindow中使用listview,listview的点击事件响应很慢或无法响应

网上对此的解决方法有: 一、是说调用PopupWindow的setFocusable()方法,进行焦点的处理 二、在listview的子view的根节点设置android:descendantFocusability="blocksDescendant" 三、。。。 但实际上,按照这些方法,我都没能顺利解决遇到的问题。 后来在大量的搜索中,下面这两篇博客,对我有很大的启发作用,先给大家分...

好记性不如烂笔头,用文档记录技术,方便自己和他人。 708

Android之用PopupWindow实现弹出listview形式的菜单

大家可自行学习,研究,并补充该demo.

安卓下拉列表样式筛选组件(仿美团,popwindow实现方式)

DropDownMenu,仿美团查询。已封装好,直接引入调用即可

android popwindow listview,android之PopUpWindow显示Listview(文件列表)

main.xmlandroid:id="@+id/mainLayout"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" >android:id="@+id/button"android:layout_width="wrap_content"a...

weixin_33013787的博客 428

物理与工程中的‘黑话’:Kronecker delta和Levi-Civita符号到底简化了什么?

本文深入解析了物理与工程中常用的Kronecker delta和Levi-Civita符号的简化作用。通过对比传统表示与张量表示,展示了这些符号在向量运算、矩阵迹计算及流体力学模拟中的高效应用,显著提升计算效率和代码可读性。特别适合理论物理和工程数学领域的学习者与从业者。

weixin_27215403的博客 397

Android实现带有listview的PopupWindow

Android 弹出带有listview数据的PopupWindow菜单

夜影 931

CHARLS数据库下载避坑指南:从注册到数据获取的完整流程(2023最新版)

本文提供2023年最新版CHARLS数据库下载与使用全流程指南,涵盖从注册、数据申请到清洗的高效实践。重点解析邮箱选择、协议签署等关键步骤,并分享多线程下载、格式转换等实用技巧,助力研究者快速获取并处理这一中国中老年健康研究的黄金标准数据。

red88的博客 920

DIY必备:如何用N-MOS管搭建低成本DC有刷电机驱动电路(附原理图+避坑指南)

本文详细介绍了如何使用N-MOS管搭建低成本、高可靠性的DC有刷电机驱动电路。针对DIY爱好者,从核心原理、电路设计、元件选型到焊接调试,提供了完整的实战指南,并重点解析了续流二极管选型、栅极驱动设计等关键避坑要点,帮助读者成功驱动电机并确保电路稳定运行。

delta的博客 774

android中的popupwindow,Android开发:实现popupwindow中显示listview

前文中我们讲过了在Android开发中如何实现带图片和checkbox的listview,如何把listview添加到popupwindow窗口中呢?关于这个listview我就再不多说了,主要是实现popupwindow和美化popupwindow。先看看我做截图:1、创建一个popupwindow,并设置相应的样式。Java代码privatevoidpopAwindow(Viewparent...

weixin_32027887的博客 483

模拟IC版图DRC实战:手把手教你搞定MIM电容天线错误和ESD.10g违例

本文深入解析模拟IC版图中的MIM电容天线错误和ESD.10g违例问题,提供从错误解码到实战修复的完整指南。通过电路图修改、版图优化和验证闭环等步骤,帮助工程师高效解决DRC错误,特别适用于ADC等精密模拟电路设计。文章还分享了高级排错技巧和预防性设计策略,大幅提升流片成功率。

weixin_27697385的博客 293

PopWindow中添加listview,item点击事件解决

最近一个需求,那就是在popwindow(后面简称pw)中添加listview做显示,但是listview中的item却无法点击。为了达到动态显示内容,那么只有想办法解决这个问题了。 在网上查阅了很多方式,有的是给pw添加焦点获取, `pw.setFocusable(true);` 但是这样并没有效果,不知道那些有效果的是不是真的,单纯因为我是4.4就无法用了。还

ddxxii的博客 4036

AVL-Excite新手必看:5步搞定发动机阀系系统建模(附B站视频教程)

本文为AVL-Excite新手提供发动机阀系系统建模的5步详细指南,涵盖软件环境搭建、基本结构建立、关键参数设置、仿真分析及常见问题排查。通过清晰的步骤说明和实用技巧,帮助工程师快速掌握建模方法,并附有精选B站视频教程链接,便于实践学习。

weixin_29305313的博客 505

Transformer模型在时间序列预测中的应用:价格和产量预测

Transformer模型由Attention is All You Need论文提出,并在机器翻译任务上取得了巨大成功。其主要特点是使用自注意力机制代替传统的递归或卷积操作进行序列建模。Transformer模型由编码器和解码器组成,其中编码器用于学习输入序列的表示,解码器用于生成目标序列。在时间序列预测中,我们只需要使用Transformer的编码器部分。编码器将历史数据作为输入,学习一个表示,然后使用该表示来预测未来的数值。

HnrzLinux的博客 736

listview里面adapter实现handler弹出popwindow相机显示照片

直接上代码,不是很详细,但是稍微懂点adapter的应该能看懂, Adapter里发出消息 在activity里面接收并弹出popWindow 点击调相机回显图片, 重点是这里 当listview滚动式getChildAt获取的position会根据你滚动所变化,所以需要用position减去getFirstVisivblePosition()获取到滚

w13080042891的博客 700

Transformer模型详解

​本文主要介绍Transformer系列,从基础到理论,对注意力机制进行总结并解释《Attention is all you need》,提出解决sequence to sequence问题的transformer模型,用全attention的结构代替了lstm,抛弃了之前传统的encoder-decoder模型必须结合cnn或者rnn的固有模式,只用attention。文章的主要目的是在减少计算量和提高并行效率的同时不损害最终的实验结果。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 5285

解决PopWindow中ListView点击无反应和隐藏popwindow

在Popwindow中加入列表,但是列表点击无反应,给popwindow添加如下属性可解决: pop.setFocusable(true); pop.update();

助你打造统一的店铺音乐形象 1145

RT-DETR训练前的准备,将数据集划分成训练集、测试集验证集(附完整脚本及使用说明)

在计算机视觉领域,当我们着手训练一个模型时,。其中,将数据集划分为和更是一项基础性且关键的操作。这篇博客分析了这一划分背后的原因、其重要意义以及如何通过代码实现,帮助大家更好地理解和运用这一技巧,。

Limiiiing的博客 906

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

在listView中如何弹出一个popWindow

@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.app_manager); lv_app_manager = (

1.01的365次方的专栏 1388

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android popwindow listview,android中PopupWindow和ListView一起使用时,bug

/*** 初始化右上角弹框*/private voidinitPopupWindow() {tipcontainer= (LinearLayout) View.inflate(this,R.layout.tiplayout, null);ListView listView = (ListView) tipcontainer.findViewById(R.id.tip_lsit);tipWindow...

weixin_28868483的博客 172

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

点击Listview弹出PopWindow的用法

先来张截图: 如图点击listview中的Item在item的下方弹出一个框框,这个框框就是用的Popwindow。 用法很简单:首先写一个PopupWindow并自定义它的布局: LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_IN...

weixin_30344995的博客 131

PopWindow与ListView多选实现

效果图: 点击Button后弹出ListView window.setFocusable(true); 设置除window外之外区域也有响应事件,此时可以响应窗口里面控件 window.setBackgroundDrawable(new BitmapDrawable()); 设置窗口背景,否则只能响应Home键 关于CheckBox值获取,我使用的android自带Arra

Unity3d 攻城师一枚 2945
上一篇: EventBus3.0的使用
下一篇: rxjava+retrofit简单demo
android_xiaogang
博客等级 码龄12年 89粉丝 142原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值