AndoridGridView 自定义适配器 监听事件的使用,实现更换头像功能

louie8.1-decision-os.zip 立即下载

// ① 创建自定义布局文件
//② 创建自定义适配器
//③ 创建Activity.xml 布局文件
// ④ 写MainActivity方法 准备数据源
//⑤ 构建适配器对象
// ⑥ 给布局文件添加适配器
// ⑦ 页面跳转
//⑧ 将选中资源id 返回 设置头像

自定义适配器

package com.example.gp11_day12_gridview2.adatper;

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

import com.example.gp11_day12_gridview2.R;

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;

public class HeadAdapter extends BaseAdapter {

    private Context context;
    private List<Map<String,Object>> datas;

    public HeadAdapter(Context context, List<Map<String, Object>> datas) {
        super();
        this.context = context;
        this.datas = datas;
    }

    @Override
    public int getCount() {
        int count = 0;
        if(datas!=null)
            count = datas.size();
        return count;
    }

    @Override
    public Object getItem(int position) {
        return datas.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)
        {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_head, null);
            holder = new ViewHolder();
            holder.imageHead = (ImageView) convertView.findViewById(R.id.imageView);
            holder.textInfo = (TextView) convertView.findViewById(R.id.textView);
            convertView.setTag(holder);
        }
        else
            holder = (ViewHolder) convertView.getTag();

        Map<String,Object> data = datas.get(position);
        holder.imageHead.setImageResource(Integer.parseInt(data.get("headImage").toString()));
        holder.textInfo.setText(data.get("headInfo").toString());

        return convertView;
    }

    class ViewHolder
    {
        ImageView imageHead;
        TextView textInfo;
    }


}

目标界面

package com.example.gp11_day12_gridview2;

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

import com.example.gp11_day12_gridview2.adatper.HeadAdapter;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;

public class HeadActivity extends Activity {

    private GridView gridView;
    private List<Map<String,Object>> datas;
    private HeadAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_head);

        gridView = (GridView) findViewById(R.id.gridView);
        datas = new ArrayList<Map<String,Object>>();

        int[] heads={R.drawable.img01,R.drawable.img02,R.drawable.img03,
                R.drawable.img04,R.drawable.img05,R.drawable.img06,
                R.drawable.img07,R.drawable.img08,R.drawable.img09};

        Map<String,Object> map = null;
        for(int i=0;i<heads.length;i++)
        {
            map = new HashMap<String,Object>();
            map.put("headImage", heads[i]);
            map.put("headInfo", "头像"+(i+1));
            datas.add(map);
        }
        adapter = new HeadAdapter(this,datas);
        gridView.setAdapter(adapter);

        //给GridView添加事件监听
        gridView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                //得到被点击的数据项
                Map<String,Object> map = datas.get(position);
                int imageId = Integer.parseInt(map.get("headImage").toString());

                //把图片的资源id返回给上一个activity
                Intent content = new Intent();
                content.putExtra("imageId", imageId);

                setResult(RESULT_OK,content);
                finish();
            }
        });
    }
}


源界面

package com.example.gp11_day12_gridview2;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

private static final int REQUESTCODE = 6;

private ImageView imageHead;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageHead = (ImageView) findViewById(R.id.image_head);
}

//点击按钮时选择头像
public void selectHead(View v)
{
    Intent intent = new Intent(this,HeadActivity.class);
    startActivityForResult(intent, REQUESTCODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==this.REQUESTCODE && resultCode==this.RESULT_OK)
    {
        int imageid = data.getIntExtra("imageId", R.drawable.ic_launcher);
        imageHead.setImageResource(imageid);
    }
}

}









移动应用畅销榜预测数据集10000款应用19特征 本数据集模拟移动应用商店的运营特征,包含10000款应用、19个字段、单CSV约937KB。字段覆盖应用类别(12类)、商业模式(免费、广告、内购、订阅、付费)、发布年份、内容分级、安装包大小、单次会话广告加载量、年更新次数、距上次更新天数、商店编辑推荐、买量支出、平均评分、次日与30日留存率,以及评分总数、累计下载量与营收等结果字段。提供top_grossing分类目标(营收前15%)与revenue_musd回归目标,结果字段独立分离,便于练习避免目标泄漏。数据完整无缺失、无需表关联,非线性效应与特征交互明显,调优后模型可超越朴素基线,兼具入门友好与研究深度,适合移动应用行业分析、商业化策略研究与机器学习教学。说明:本数据为Python生成的合成数据,仅反映生成规则,不含真实应用与个人信息。许可:CC0公有领域,可自由使用与二次分发。 立即下载

相关推荐

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

Android Studio中GridView的使用方法3-1

GridView控件的作用是通过网格来显示指定的内容,如图1所示。 图1 GridView控件的使用 从图1中可以看出,GridView控件使用“网格”来显示球星。 1 GridView通过自定义Adapter显示数据 GridView控件的通过自定义Adapter显示数据的方法与《Android Studio中ListView通过自定义Adapter显示数据3-1》中提到的ListView控件相似,分为四个步骤,分别是:定义数据类、定义网格布局、定义Adapter类和设置数据。 1.1.

hou09tian的博客 4217

Delphi 13.2控件之sbridge-12.1.0-d7pro.exe

Delphi 13.2控件之sbridge_12.1.0_d7pro.exe

GridView点击更换头像案例+适配器优化

package com.yztc_gridview;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ImageView;/** * GridView的演示以及优化 *

Cyq_0927的博客 624

chrome-headless-shell-linux64-159.0.8145.0(Canary).zip

内容概要:Chrome for Testing 官方 chrome-headless-shell 159.0.8145.0 linux64 平台(金丝雀版通道),原版未修改,附来源说明。 适合人群:Linux 64 位 上的自动化测试工程师、爬虫开发者、CI 环境搭建者。 使用场景及目标:①无头浏览器(Playwright/Puppeteer/Selenium 无界面自动化与爬虫的运行内核);②服务器/容器离线内置;③版本精准匹配(chromedriver 与 Chrome 需同大版本)。 其他说明:Chrome for Testing 为 Google 官方发布、允许自由分发的文件;本资源为第三方整理的下载便利服务。

汽车电子基于OTA的Bootloader更新机制:量产车软件升级断点版本限制与跨代更新规避策略

内容概要:本文深入剖析了量产汽车ECU中Bootloader在OTA升级过程中为何无法跨“断点版本”升级的核心原理。文章从Bootloader作为可信根的不可变性出发,解释了其在SOP后禁止常规OTA更新的原因,并揭示了Flash分区机制下OTA仅能擦写Application区的限制。通过介绍“两段式搬运”自更新机制,阐明了新版Bootloader需依赖旧版Bootloader执行迁移的“鸡生蛋”困境,进而引出断点版本的概念——即首次引入新Bootloader特性的关键过渡版本。文中详细列举了导致断点的典型变更(如签名算法、分区表等),并指出跨版本升级失败的根本原因在于旧Bootloader无法解析新镜像格式或执行更新流程。最后提出系统性解决方案,包括构建有向升级路径图、终端前置校验、A/B冗余、Golden恢复区等工程防护措施,强调需从架构、发布、OTA后台到售后体系全流程协同管理断点风险。; 适合人群:汽车电子工程师、车载软件开发人员、OTA系统设计师及从事ECU固件升级相关的技术管理人员,尤其适合具备嵌入式系统和UDS诊断基础的研发人员。; 使用场景及目标:①理解Bootloader在OTA中的核心作用及其不可随意更新的设计逻辑;②掌握断点版本的成因与应对策略,避免实际升级中出现“变砖”事故;③指导OTA系统设计与升级路径规划,提升整车软件迭代的安全性与可靠性。; 阅读建议:此资源结合真实工程场景深入浅出地讲解复杂机制,建议结合Bootloader自更新流程图与实际UDS刷写案例对照学习,重点关注版本兼容性判断、安全校验设计及故障恢复机制,在开发和测试中充分模拟跨断点升级场景以验证系统鲁棒性。

[Android] 通过GridView仿微信动态添加本地图片

原文:http://blog.youkuaiyun.com/eastmount/article/details/41808179     前面文章讲述的都是"随手拍"中图像处理的操作,此篇文章主要讲述GridView控件实现添加本地图片并显示.主要是关于GridView控件的基本操作,通常可以通过自定义继承BaseAdapter的适配器加载图片,而下面讲述的不是自定义的适配器,而是调用SimpleAda...

weixin_34167819的博客 626

对外一种类型,对内几副身形:Redis键空间管理、五大类型内部编码与场景选型解析代码包

想解决的就是这道“会用”和“用好”之间的缝隙。它回答四个具体问题: 一个 Redis 实例应该怎样启动、连接和关闭,哪些做法会在重启后丢数据; 管理键的那一组命令(EXISTS、DEL、EXPIRE、RENAME、KEYS、SCAN……)各自的代价是什么,哪些会把主线程卡住; 对外只有五种类型,对内却有十来种编码,它们何时切换、为何切换、切换后内存差多少; 每种类型最适合什么访问模式,常见场景(缓存、计数、限流、队列、标签、排行榜、延迟队列、分页)应该怎样写才不踩坑。

使用GridView和ImageView组件实现图片显示效果

阶段一:进行界面布局 Main.xml具体代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" andro

Tivon_S 2030

AI政务大模型数字人平台规划方案(技术方案版).pptx

AI政务大模型数字人平台规划方案(技术方案版).pptx

【机械故障诊断】项目介绍 MATLAB实现基于CWT-CNN-Transformer连续小波变换(CWT)时频图结合卷积神经网络(CNN)和Transformer编码器进行滚动轴承故障诊断(含模型描述

内容概要:本文介绍了一种基于连续小波变换(CWT)、卷积神经网络(CNN)和Transformer编码器相结合的滚动轴承故障诊断模型(CWT-CNN-Transformer),利用MATLAB实现。原始振动信号经分段和归一化后,通过CWT转化为二维时频图,以展现故障引起的非平稳特征;CNN用于提取时频图中的局部纹理、能量团和冲击条纹等空间特征;随后将CNN输出的特征图转换为令牌序列,并引入位置嵌入,交由Transformer编码器利用自注意力机制建模全局依赖关系,捕捉跨频带、长距离的故障模式关联;最终通过全局池化与分类层实现多类别故障识别。文中还提供了完整的代码示例,涵盖信号处理、时频图生成、数据划分、网络搭建、训练流程及结果评估全过程。; 适合人群:具备一定信号处理与机器学习基础,从事工业设备故障诊断、智能运维、深度学习应用研究的科研人员或工程技术人员,尤其适合熟悉MATLAB环境的研发者;; 使用场景及目标:①应用于旋转机械中滚动轴承的早期故障检测与多类别故障分类;②构建从振动信号采集到智能诊断的端到端自动化分析系统;③支持预测性维护、状态监测与工业智能化升级;目标是提升在变工况、强噪声、多故障耦合下的诊断准确率与模型鲁棒性; 阅读建议:建议结合提供的代码实例在MATLAB R2025b环境下实践操作,重点关注CWT参数设置、CNN-Transformer联合建模结构设计及混淆矩阵评估方法,同时注意数据预处理的一致性与标签管理规范,以实现可复现、可部署的诊断系统。

5分钟实现Android中更换头像功能

5分钟实现Android中更换头像功能 本文原创,转载请经过本人准许 写在前面:更换头像这个功能在用户界面几乎是100%出现的。通过拍摄照片或者调用图库中的图片,并且进行剪裁,来进行头像的设置。功能相关截图如下:下面我们直接看看完整吧: public class UserActivity extends BaseActivity implements OnClickListener { p

MeloDev的博客 1万+

化学和超级电容混合储能双层容量配置平抑风电波动,采用RLMD分解风电功率,粒子群算法求解(Matlab代码实现)

内容概要:本资源聚焦于化学储能与超级电容器混合储能系统的双层容量配置方法,旨在平抑风电功率波动。通过采用鲁棒局部均值分解(RLMD)对风电功率进行多尺度分解,提取不同频率分量,并据此划分高频与低频功率响应任务,充分发挥超级电容器响应速度快和化学电池能量密度高的互补优势。在此基础上,构建以系统成本、寿命损耗与波动平抑效果为目标的多目标优化模型,并利用粒子群优化算法(PSO)求解最优容量配置方案。整个过程通过Matlab代码实现,提供了完整的仿真流程和技术细节,体现了信号分解、储能特性匹配与智能优化算法相结合的技术路线。; 适合人群:具备一定电力系统、新能源或自动化背景,熟悉Matlab编程,从事储能系统规划、风电并网或优化算法应用研究的研发人员与研究生。; 使用场景及目标:① 掌握RLMD等先进信号分解技术在风电功率处理中的应用;② 学习混合储能系统双层协调控制与容量配置的建模思路;③ 实践基于粒子群算法的多目标优化问题求解方法,并应用于实际工程场景。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示算法流程,更注重从工程需求出发的系统设计与优化建模。学习者应结合代码运行、参数调整与结果分析,深入理解RLMD分解效果、储能分工机制及优化目标之间的权衡关系,从而掌握解决此类综合问题的方法论。

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文提供了关于半桥LLC谐振变换器的开环与闭环仿真设计资料,基于Simulink平台实现,系统阐述了变频控制下的半桥LLC谐振变换器建模方法,涵盖谐振腔参数设计、系统动态响应分析、PI控制器设计及优化、软开关特性实现与高效率能量传输机制等内容。资料深入探讨了开环与闭环控制策略的差异,重点分析了闭环控制系统在负载突变与输入电压扰动下的稳定性与鲁棒性表现,并通过完整的仿真模型验证不同工况下的系统性能,帮助用户掌握LLC变换器的核心工作原理与工程设计要点。; 适合人群:具备电力电子技术基础,从事开关电源、新能源变换器、电力系统电能变换等相关领域研发工作的工程师,以及高等院校电气工程、自动化等相关专业的研究生和科研人员。; 使用场景及目标:①掌握基于Simulink的LLC谐振变换器建模与仿真全流程;②深入理解开环与闭环控制对系统效率、动态响应及稳定性的影响;③学习谐振参数(如Lr、Cr、Lm)的优化设计方法与PI控制器的整定策略,支撑实际产品开发与学术课题研究。; 阅读建议:建议结合提供的Simulink仿真模型进行同步操作,重点观察控制环路搭建细节与关键参数调节过程,通过设置不同负载条件与输入电压变化,对比分析系统在开环与闭环模式下的输出响应、开关管电压电流波形及软开关实现情况,从而深化对LLC变换器控制机理与设计规律的理解。

无人机路径规划中多种优化算法的仿真研究(Matlab代码实现)

内容概要:本文系统研究了无人机路径规划中多种智能优化算法的仿真方法,重点实现了改进灰狼优化算法(I-GWO)、标准灰狼优化算法(GWO)、金鹰优化算法(GJO)和正弦余弦算法(SCA)在三维复杂环境下的路径规划应用。通过Matlab编程对各类算法进行建模与仿真,对比分析其在路径长度、飞行安全性、轨迹平滑度及算法收敛速度等方面的性能表现。研究涵盖三维空间建模、障碍物规避机制、多目标代价函数设计以及算法参数敏感性分析等内容,旨在为无人机在复杂场景下的自主导航提供高效、可靠的路径规划方案。; 适合人群:具备一定Matlab编程基础和优化算法理论知识,从事无人机系统开发、智能算法研究、自动化控制及相关领域的科研人员与工程技术人员,尤其适合研究生及以上学历的研究者。; 使用场景及目标:①应用于城市密集区、灾难救援、边境巡逻、军事侦察等复杂三维环境下的无人机航迹规划任务;②系统比较不同元启发式优化算法在路径规划中的搜索能力、稳定性和计算效率,为实际工程中算法选型与改进提供依据;③作为高校或科研机构在智能优化、机器人导航、飞行器控制等课程中的教学案例与实验素材。; 阅读建议:建议读者结合文中提供的Matlab代码进行仿真实验,深入理解目标函数构建逻辑与算法实现细节,可通过调整环境障碍分布、优化权重因子及算法参数等方式开展消融实验,以全面掌握各类算法的性能边界与适用条件。

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

内容概要:本文详细阐述了全桥LLC谐振变换器在变频与移相混合控制策略下的闭环仿真模型构建过程,重点探讨了其在Simulink环境中的实现方法。该模型融合变频控制与移相控制的优势,有效提升了变换器的转换效率与动态响应性能,适用于高效率、高功率密度的DC-DC变换应用场景。文中系统介绍了变换器的工作原理与数学建模,完整展示了闭环控制系统的设计流程,涵盖控制器参数整定、仿真模型搭建及关键波形分析,充分验证了所提出的混合控制策略在稳定性、响应速度与抗干扰能力方面的优越性。; 适合人群:具备电力电子与自动控制理论基础,熟悉Simulink仿真工具,从事开关电源、新能源变换系统、电力电子装置研发的工程师及电气工程、自动化等相关专业的研究生。; 使用场景及目标:①用于高效率LLC谐振变换器的研发设计与教学演示,深化对软开关技术的理解;②为科研人员提供混合控制策略的仿真参考,优化变换器的动态响应、效率及轻载性能;③支撑相关科研课题的实验验证、学术论文复现与毕业设计开发。; 阅读建议:在学习过程中应重点关注混合控制策略的实现逻辑、控制环路的耦合机制与仿真参数配置,结合理论推导与仿真结果进行对比分析,通过反复调试与优化,深入理解变频与移相控制协同作用对系统整体性能的影响机理。

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文围绕两路半桥LLC谐振变换器的软开关特性展开Simulink仿真研究,重点分析了不同谐振参数(如谐振电感、谐振电容)以及分裂电容结构对系统性能的影响。通过构建详细的开环与闭环控制仿真模型,深入探究变换器在变频控制下的动态响应、能量传输效率及软开关实现条件,验证了在宽负载范围内实现零电压开通(ZVS)和零电流关断(ZCS)的可行性。研究特别关注分裂电容对谐振腔参数调节的作用机制,揭示其在优化高频高效电源设计中的关键价值,为高性能DC-DC变换器的设计提供了理论依据与实践指导。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频电源、新能源变换器、电动汽车充电模块等领域的研发工程师和技术人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理及其软开关的实现条件;②掌握基于Simulink的电力电子系统建模与仿真分析方法;③探究分裂电容等关键结构对谐振参数与系统效率的影响,进而优化高效率、高功率密度电源的拓扑设计与参数匹配。; 阅读建议:读者应具备电路理论、电力电子变流技术的基础知识,建议在学习过程中结合所提供的Simulink模型进行实际操作,重点观察谐振参数变化对电流电压波形及软开关过程的影响,并尝试调整控制器参数以分析系统的动态响应与稳定性表现。

BunkerWeb 开源 WAF/WAAP 实战:基于 Nginx 的 Web 安全防护部署指南

Web 应用暴露在公网后,SQL 注入、XSS、恶意爬虫与 CC 攻击等威胁接踵而至,仅靠业务代码自建防护很难覆盖层出不穷的攻击变种。WAF(Web 应用防火墙)将安全能力前置到流量入口,成为收敛攻击面的关键手段;而更进一步的 WAAP 则扩展至 API 场景,覆盖防爬、限流与 Bot 识别。BunkerWeb 作为一款基于 Nginx 构建的开源 WAF/WAAP,在保留 Nginx 高性能底座的同时,通过模块化设计集成规则引擎、频率限制、IP 封禁、自动 HTTPS 等能力,并借助 Docker 容器化

weixin_34198881的博客 357
上一篇: Android Dialog 对话框多种使用方式
下一篇: Android 弱引用二级缓存实现
一朵红杏
博客等级 码龄12年 51粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值