Android实现listview布局,点击activity传递跳转,长按跳出对话框,退出提示Dialog对话框

Android开发丶列表底部列表弹窗Dialog同时包含选择和自适应高度功能 前一段时间接到一个需求,点击弹出一个底部弹窗,弹窗的内容以列表的方式来呈现,同时包含选择条目和自适应以及固定高度,需求不难,就是一些细节的东西绕了一些弯路,现在做下汇总。 国际惯例,先看下效果图。 下面说下实现方法。 1.首先新建一个dialog的style。 <!--底部弹窗--> <style name="DialogStyle" parent="android... 阅读详情

xml进行布局<----item.XML---->

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:padding="5dp"
        android:gravity="center_vertical"
        android:descendantFocusability="blocksDescendants">  //抢夺焦点
        <ImageView
            android:id="@+id/logo"
            android:layout_width="70dip"
            android:layout_height="70dip"
            android:src="@drawable/timg1"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginLeft="5dp"
            android:layout_weight="1">
            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="知乎网"
                android:layout_marginTop="10dip"/>
            <TextView
                android:id="@+id/vertion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="版本:1.0.1"
                android:textSize="10sp"
                android:textColor="#999"
                android:layout_marginTop="6dp"/>
            <TextView
                android:id="@+id/size"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="大小:45M"
                android:textSize="10sp"
                android:textColor="#999"
                android:layout_marginTop="3dp"/>
        </LinearLayout>
        <Button
            android:layout_width="75dip"
            android:layout_height="35dip"
            android:background="@drawable/btn_selector"    //接入按钮图片颜色
            android:text="下载"/>
    </LinearLayout>
</LinearLayout>

listview进行布局  <----mainactivity.java----->

package com.yongninggo.helloworld3;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {

    ListView lv_show ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ListView lv_show = (ListView) findViewById(R.id.lv_show);
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("logo",R.drawable.timg1);
        map.put("title","知乎网");
        map.put("vertion","版本:1.0.1");
        map.put("size","大小:45M");
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("logo",R.drawable.timg2);
        map.put("title","微信");
        map.put("vertion","版本:1.0.1");
        map.put("size","大小:45M");
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("logo",R.drawable.timg3);
        map.put("title","QQ");
        map.put("vertion","版本:1.0.1");
        map.put("size","大小:45M");
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("logo",R.drawable.timg4);
        map.put("title","微博");
        map.put("vertion","版本:1.0.1");
        map.put("size","大小:45M");
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("logo",R.drawable.timg5);
        map.put("title","支付宝");
        map.put("vertion","版本:1.0.1");
        map.put("size","大小:45M");
        list.add(map);

{将simpleadapter适配器修改为自定义Myadapter适配器}
        /*SimpleAdapter adapter = new SimpleAdapter(
                this,
                list,
                R.layout.item,
                new String[]{"logo","title","vertion","size"},
                new int[]{R.id.logo,R.id.title,R.id.vertion,R.id.size}
                );*/

        Myadapter adapter = new Myadapter(this);
        adapter.setList(list);

        lv_show.setAdapter(adapter);

        lv_show.setOnItemClickListener(this);
        lv_show.setOnItemLongClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        //Toast.makeText(this,"点击"+position,Toast.LENGTH_SHORT).show();
Activity数据传递
        Intent intent = new Intent();
        intent.setClass(this,aActivity.class);
        intent.putExtra("index",""+position);
        Map<String,Object> map = (Map<String, Object>) parent.getItemAtPosition(position);
        intent.putExtra("title",""+map.get("title"));
        startActivity(intent);
    }

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //Toast.makeText(this,"长按"+position,Toast.LENGTH_SHORT).show();
长按listview触发事件
        final String [] arr = {"复制","删除","举报"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.timg1);
        builder.setTitle("操作");
        builder.setItems(arr, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"您选择了:"+arr[which],Toast.LENGTH_SHORT).show();
            }
        });
        builder.show();

        return true;
    }

    @Override
    public void onBackPressed() {
        //super.onBackPressed();
退出提示事件
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.timg2);
        builder.setTitle("操作");
        builder.setMessage("您确定退出吗?");
        builder.setNegativeButton("取消",null);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
            }
        });
        builder.show();
    }
}

Activity事件<----activity.java---->

package com.yongninggo.helloworld3;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;

/**
 * Created by 14487 on 2017/5/6.
 */

public class aActivity extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        String index = getIntent().getStringExtra("index");
        String title = getIntent().getStringExtra("title");
        TextView info = (TextView) findViewById(R.id.info);
        info.setText("序列号:"+index+"   软件名:"+title);
    }
}

自定义适配器内容  <----Myactivity.java---->


package com.yongninggo.helloworld3;

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

import java.util.List;
import java.util.Map;

/**
 * Created by 14487 on 2017/5/6.
 */

public class Myadapter extends BaseAdapter {
    List<Map<String,Object>> list ;
    LayoutInflater inflater ;

    public Myadapter(Context context) {
        this.inflater = LayoutInflater.from(context);
    }

    public void setList(List<Map<String, Object>> list) {
        this.list = list;
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        viewHolder holder = null;  //二级优化定义
        if (convertView == null){  //listview一级优化
            convertView = inflater.inflate(R.layout.item,null);
            holder = new viewHolder();
            holder.logo = (ImageView) convertView.findViewById(R.id.logo);
            holder.title = (TextView) convertView.findViewById(R.id.title);
            holder.vertion = (TextView) convertView.findViewById(vertion);
            holder.size = (TextView) convertView.findViewById(size);
            convertView.setTag(holder);
        } else {
            holder = (viewHolder) convertView.getTag();
        }

        Map map = list.get(position);
        holder.logo.setImageResource((Integer) map.get("logo"));
        holder.title.setText((String) map.get("title"));
        holder.vertion.setText((String) map.get("vertion"));
        holder.size.setText((String) map.get("size"));

        return convertView;
    }
    public class viewHolder{
        ImageView logo;
        TextView title;
        TextView vertion;
        TextView size;
    }
}

示例如图:

Android实现listview布局,点击activity传递跳转,长按跳出对话框,退出提示对话框 - Android - Android的博客            Android实现listview布局,点击activity传递跳转,长按跳出对话框,退出提示对话框 - Android - Android的博客


定制美观的Android对话框并集成ListView 布局文件通常使用XML定义,以下是一个简单的布局示例:<TextView<ListView此布局使用垂直方向的作为根布局,其中包含一个TextView和一个ListView。TextView被设计为显示标题,而ListView则用于展示列表项。在Android开发中,是一个非常强大的适配器基类,它为我们提供了灵活性来实现各种自定义的列表视图。自定义需要实现以下五个方法:getCount(): 返回列表中的项目总数。: 返回位于指定位置的数据项。 阅读详情

相关推荐

android dialog嵌套ListView

android dialog嵌套ListView,实现对ListView的添加,删除操作

VC里基于对话框的程序屏蔽回车键自动退出程序

        平时,我们会碰到这样的问题:在VC6中加入对话框,并放入编辑框,运行后,在编辑框中输入一些字母并按回车,程序自动退出;在用Listctrl控件时,对某一项进行编辑后习惯按回车键进行确定,但是回车键一按下,程序就自动退出了。对于这种问题,我们可以用如下简单的办法来解决:方法:重载CDialog::PreTranslateMessage(MSG* pMsg);[程序实现]BOOL

cpu_0dgree的专栏 1583

Android自定漂亮Dialog中嵌入ListView

Android自定漂亮Dialog中嵌入ListView,本人亲测)友友们我会更新更多的源码和大家分享,希望大家喜欢 .

Android 实现数据回传

startActivityForResult(intent, 1) 这个方法,这里面带有两个参数,第一个是你要跳转的对象,第二个是传送码。在使用setResult(0, intent) 方法跳转,这里参数1 是回传码 参数2 是跳转目的。我们在开发项目中经常遇到需要把数据传回上一个页面的情况,这时候我们就可以用到。假如我们现在要从activityA →activityB。然后在activityB中。这样数据回传就完成了。

qq_48723584的博客 1564

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 444

coreldraw sp2精简版 x4_CorelDRAW X4下载-CorelDRAW X4 SP2 精简版_Win10镜像官网

CorelDRAW X4 SP2是一个专业图形设计软件,专用于矢量图形编辑与排版,借助其丰富的内容和专业图形设计、照片编辑和网站设计软件,您将能够随心所欲地表达自己的风格与创意,轻松创作徽标标志、广告标牌、车身贴和传单、模型绘制、插图描画、排版及分色输出等。CorelDRAW X4 SP2软件特色CorelDraw X4 相比两年前的 CorelDraw X3 加入了大量新特性,总计有50项以上,...

weixin_30346025的博客 8885

Android实现Dialog嵌套ListView

1、定义ListViewDialog和xml文件 list_view.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" ...

混合编程 1247

Skiplist,B,B+tree,LSM tree

SkipList 理解(如何实现): 即使是有序的链表,查找的时间复杂度也是O(n),但链表不能随机访问所以不适用于二分查找,使得查找的时间复杂度为O(logn)。 于是将有序链表和二分查找结合得到了SkipList,类似于二叉搜索树,这是一种以空间换时间的算法,通过在每个节点中增加向前的指针,从而提升查找效率(如下图所示)。 一开始如a所示,是一个有序的链表,时间复杂度O(n)。随后建立了e所示的SkipList,从最顶层往下查找,可以跳过许多元素,减少查找次数。 ​

weixin_45875458的博客 947

android基础 [超级详细android常用控件解析(Dialog对话框,Spinner下拉,ListView列表,GridView网格)]

超级详细android常用控件解析(Dialog对话框,Spinner下拉,ListView列表,GridView网格)

m0_63658317的博客 2463

别只当玩具!聊聊这个555金属探测器电路背后的电磁感应与RLC调谐原理

本文深入解析了555金属探测器电路的工作原理,重点探讨了电磁感应与RLC调谐原理。通过分析电感线圈的电磁特性、RLC谐振电路的行为以及555定时器的多重功能,揭示了这一看似简单的装置如何实现金属检测。文章还提供了灵敏度优化方案和常见问题解决方法,帮助读者从科学角度理解这一实用技术。

weixin_29204205的博客 477

稳定性仿真(stb闭环增益仿真)

stb仿真主要是测试电路的稳定性,例如运放在闭环电路中的增益和相位裕度的值,从而判别电路是否正常工作。 以下是stb仿真的过程: (1)调用iprobe器件 从analogLib中调iprobe器件,通过器件中的箭头标识确定接入电路的方法,箭头起点端连运放的输出端,箭头的终点端连在反馈环路的作用端。iprobe器件连入电路后相当于理想导线。(iprobe器件连接在反馈回路上) (2)analyses设置 勾选stb和frequency,此处的频率范围设置在0.1~1GHz,Probe Instance/T

qq_36686804的博客 3万+

【android】自定义全屏dialog显示+listview

折腾半天,自定义全屏dialog,单对话框式。 存一下,日后不用再写了。 /**  * 基础语音对话框  * @author make  *  */ public class BaseVoiceDialog { private Context context; private boolean show = false; private int height;

mkmarcy的博客 1089

从零部署DeepSeek V4 Flash:NVIDIA DGX Spark实战指南

GPU加速计算已成为现代人工智能基础设施的核心,其原理是通过并行处理架构大幅提升深度学习模型的训练与推理效率。在AI工程实践中,NVIDIA GPU凭借CUDA生态和专用驱动栈,为大规模语言模型部署提供了硬件基础。本文聚焦于企业级AI服务器部署场景,针对NVIDIA DGX Spark多节点系统的硬件初始化、驱动兼容性配置、容器化部署等关键环节,提供从系统层到应用层的完整解决方案。通过vLLM推理框架的实战配置,演示如何将DeepSeek V4 Flash模型高效部署于多GPU环境,涵盖Tensor Par

weixin_32296621的博客 377

Android之Dialog中添加ListView

1.自定义item的布局文件 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300dp" android:background="@col

Zachary的基地 4048

cefshap(C#)定义浏览器的右键菜单

菜单效果:复制(自带),搜索文本,打开链接,复制链接,刷新,检查,关于 public class MenuHandler : IContextMenuHandler { //public event Action<string> PopupRequest; void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrows

无线智能模块 可视DIY智能专家 1704

K-BERT: Enabling Language Representation with Knowledge Graph 代码复现 直接运行

K-BERT: Enabling Language Representation with Knowledge Graph K-BERT K-BERT 代码复现

1073

android 对话框listview,向Dialog对话框嵌入Listview

前段时间做个项目,要求根据输入内容进行模糊匹配,并弹出对话框进行选择,开始想用PopupWindow,后来觉得Dialog也不错,而且更简单,就用的Dialog,下面记录一下,挺实用的小功能。源码如下:privatevoidshowDialog(){/***创建Dialog,参数为当前环境与样式。*/finalDialogdialog=newDialog(ZaiTuYuJing_...

weixin_31174767的博客 661

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android 开发dialog 嵌套listview布局

效果图; 示例代码: 示例:public void setDialog(){     LayoutInflater inflater=LayoutInflater.from(this);//将xml布局转换为view      View view=inflater.inflate(R.layout.listview, null);//将xml布局转换为view,里面有listview

yangchun_dawang的博客 4444

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

自定义Dialog底部弹出,dialog嵌套一个listView可滑动,实现多选底部弹窗,点击空白处消失

底部弹窗是我Android李一个比较多的应用啦,自定义的流程就不说啦,资料很多。直接贴代码。这里记录一下减少开发成本: 1.自定义一个dialog: import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; import android.content.C...

123...木头人的博客 780

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android listview自适应高度,android Dialog 添加 ListView 自适应高度

在自定义 Dialog 中添加一个ListView后,当条目过多时,会把下方的控件挤出屏幕。为了看到效果,我创建了一个非常简单的 Dialog.public class ListViewDialog extends Dialog {private final Context mContext;private ListView mListView;public ListViewDialog(Cont...

weixin_33256233的博客 674

android dialog内嵌listview样式,android 開發dialog 嵌套listview布局

示例代碼:示例:publicvoidsetDialog(){LayoutInflaterinflater=LayoutInflater.from(this);//將xml布局轉換為viewViewview=inflater.inflate(R.layout.listview,null);//將xml布局轉換為view,里面有listviewStringa[]={"1","2","3",...

weixin_33542589的博客 353

android dialog自定义listview,android 往dialog中加入listview,并实现listview中item的点击事件...

LinearLayout linearLayoutMain = newLinearLayout(this);//自定义一个布局文件linearLayoutMain.setLayoutParams(newLayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));ListView listView = newListView(...

weixin_30920223的博客 560

android dialog取得listview值,将listview显示在dialog当中

一.新建一个工程其activity_main.xml文件如下xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margi...

weixin_39633976的博客 226

android dialog取得listview值,包含listview的dialog的简单使用

dialog使用的十分广泛,今天就介绍下包含了listview的dialog简单应用,其实和普通的dialog一样。1、先布局首先主布局android:id="@+id/btn_dialog_2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="中间弹出"android:back...

weixin_35293785的博客 646

android 往dialog中加入listview,并实现listview中item的点击事件

LinearLayout linearLayoutMain = new LinearLayout(this);//自定义一个布局文件 linearLayoutMain.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); ListView listView

Elena_wang的专栏 1万+

Dialog再次理解了。

前言   对话框对于应用也是必不可少的一个组件,在Android中也不例外,对话框对于一些提示重要信息,或者一些需要用户额外交互的一些内容很有帮 助。本篇博客就讲解一下Android下对话框的使用,在本篇博客中,将了解到对话框的一些常规属性的设置,以及各式的对话框的使用,并都会提供小 Demo来展示所有的效果。 Dialog   Dialog,对话框,一个对话框就是一个小窗口,并

路在脚下 1477
上一篇: android studio生成签名导打包的方法
下一篇: tp5引入前后台网页模板
Colt"
博客等级 码龄9年 30粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值