android activity中获取adapter中item中的某个控件

RecyclerView高级控件-附实例【android专题】 holder.itemView.item_name.text = “【${position}】移动端架构师体系课”// 创建一个ViewHolder 必须继承自 RecyclerView.ViewHolder。“移动开发“两极分化”,没有差不多的“中间层,唯有尽早成长为架构师,你的职业道路才能走的更远更稳”// 【必须复写】创建ItemView的ViewHolder,用于后续的数据绑定。// 【必须复写】告诉RecyclerView列表上item的条数。// 【必须复写】item的数据绑定。 阅读详情

有时需要在activity中直接获取listview中每一项(item)的子控件,这个时候我可以使用接口来与activity通信,将子控件作为参数传递过来。代码如下:

ListViewDemoAdapter 适配器代码:

private static final String TAG = ListViewDemoAdapter.class.getSimpleName();
 
    /**
     * 上下文
     */
    private Context mContext;
 
    /**
     * LayoutInflater
     */
    private LayoutInflater mInflater;
 
    private List<String> datas;
 
    public ListViewDemoAdapter(Context context,List<String> list){
        this.mContext = context;
        this.datas = list;
        this.mInflater = LayoutInflater.from(context);
    }
 
    @Override
    public int getCount() {
        return datas.size();
    }
 
    @Override
    public String 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){
            holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.listitem,null);
            holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }
        holder.tv_name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG,"setOnClickListener-->onClick...");
                //回调传递点击的view
                mItemOnClickListener.itemOnClickListener(v);
            }
        });
        return convertView;
    }
 
    private ItemOnClickListener mItemOnClickListener;
 
    public void setmItemOnClickListener(ItemOnClickListener listener){
        Log.d(TAG,"setmItemOnClickListener...");
        this.mItemOnClickListener = listener;
    }
 
    public interface ItemOnClickListener{
        /**
         * 传递点击的view
         * @param view
         */
        public void itemOnClickListener(View view);
    }
 
    public class ViewHolder{
        public TextView tv_name;
    }

MainActivity 代码:

public class MainActivity extends AppCompatActivity {
 
    private static final String TAG = MainActivity.class.getSimpleName();
 
    /**
     * listview
     */
    private ListView mLvDemo;
 
    private List<String> list = new ArrayList<String>();
 
    private  ListViewDemoAdapter mAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化view
        initView();
        //初始化数据
        initData();
    }
 
    /**
     * 初始化view
     * @author crystal
     * @date 2015-9-4 22:24
     */
    private void initView(){
        //初始化listview
        mLvDemo = (ListView) findViewById(R.id.lv_demo);
        mAdapter = new ListViewDemoAdapter(MainActivity.this,list);
        mLvDemo.setAdapter(mAdapter);
 
        //获取点击的view子控件
        mAdapter.setmItemOnClickListener(new ListViewDemoAdapter.ItemOnClickListener() {
 
            /**
             *  点击的view子控件
             * @param view view子控件
             */
            @Override
            public void itemOnClickListener(View view) {
                Log.d(TAG, "itemOnClickListener view...");
                TextView tvName = (TextView)view;
                //提示点击的子控件的文本
                Toast.makeText(MainActivity.this,tvName.getText().toString(),Toast.LENGTH_LONG).show();
            }
        });
    }
 
    /**
     * 初始化数据
     * @author crystal
     * @date 2015-9-4 22:51
     */
    private void initData(){
        list.add("crystal");
        list.add("jack");
        list.add("tom");
        list.add("rose");
        list.add("lora");
        list.add("tony");
        mAdapter.notifyDataSetChanged(); //更新数据
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
}

activity_main.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <ListView
        android:id="@+id/lv_demo"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ListView>
</LinearLayout>

listitem.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="wrap_content"
    android:padding="15dp"
    android:gravity="center_horizontal"
    android:orientation="horizontal">
 
    <TextView
        android:id="@+id/tv_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="crystal"/>
 
</LinearLayout>

转载自:https://blog.youkuaiyun.com/crystalddd/article/details/48223271?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

【Android-Activity】RecyclerView中item的点击事件 recyclerView的使用方法总结:link. recyclerView的下拉刷新:link. 在安卓开发中recyclerView不同于listView、GridView一样可以直接用setOnItemClickListener方法来为item创建点击事件: listView、GridView自带的item点击事件: GridView gv=new GridView(this); gv.se... 阅读详情

相关推荐

Android入门第27天-GrdidView控制件和可复用的Adapter

今天给大家讲一下如何构建一个可复用的自定义BaseAdapter,我们每次涉及到ListView GridView等其他的Adapter控件,都需要自己另外写一个BaseAdapter类,这样显得非常麻烦, 又譬如,我们想在一个界面显示两个ListView的话,我们也是需要些两个BaseAdapter... 这,程序员都是喜欢偷懒的哈,今我们就来写一个可复用的自定义BaseAdapter类。同时,我们使用Android里的高级控件-GridView来作为我们本次的课程样例。

打造全国最全的AI Agent开发知识领域的博客 733

Android在Adapter外(Activity)获取Item中的控件

一次突发奇想,一般都是在Adapter里监听控件进行操作,那可不可以在Adapter外例如Activity里获取Item中的空间进行操作呢?实际上很简单; 第一步 获取父布局控件,这里position是第几个父布局 RelativeLayout layout = (RelativeLayout)listView.getChildAt(position); 第二步 TextView tv_save_...

美好事物的开始 3143

西门子V90 PN伺服控制核心:FB284功能块详解与实战

在工业自动化中,伺服定位控制是运动控制的基础环节,其本质是PLC通过PROFINET协议与伺服驱动器实现高速、确定性数据交互。FB284作为西门子为V90 PN定制的标准化功能块,封装了GSD映射、状态机管理与周期性PDO同步机制,将底层寄存器操作抽象为高可靠调用接口。相比MOVE指令或MC_MoveAbsolute等通用方案,FB284显著降低时序错乱风险,提升多轴同步精度与故障响应能力。它广泛应用于包装、灌装、装配等中端产线,尤其适配S7-1200/1500平台下的快速部署与现场维护。本文聚焦V90 P

weixin_42696271的博客 300

获取activity

在MainActivity中,直接传入this;即表示为activity对象 adapter中: private QipanJiluAcitivity acitivity; public SearchHistoryListAdapter(QipanJiluAcitivity acitivity ){ this.acitivity=acitivity; } MainAct...

简公子的博客 891

(秋招)vins中的光流法

那么下一层基于这个初值也会得到一个解,就这样进行迭代,直到达到金字塔的最底层,也即第0层,就是原始分辨率的那张图片,此时光流法就会给出一个速度值,这个值是比较可靠的(相比对原始图片直接使用光流法来说)。2.小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定。可以看到光流法是来估计物体运动的(估计的是物体运动的速度,根据速度再计算相对应的特征点)。

努力coding 651

RK3568平台 麦克风PDM接口录音_rk pdm配置

在RK平台,Android的Audio HAL层中一般会都会有导出录音播放数据的功能。如播放的,是会直接送到声卡中的,对于播放出现问题的情况,可以从分析导出的音频数据是否正常,可以基本知道,是在应用、解码出现的问题,还是送到声卡过程中出现问题。当点开app进行录音的时候会调用到static int start_input_stream(struct stream_in *in)。音频在PDM接口输入,不经过编解码芯片直接到RK主芯片,RK主芯片自带PCM编解码功能。以下软件能播放保存下来的pdm文件。

2401_83817122的博客 2343

Android开发:RecyclerView获取item位置的几种方法比较

当使用 RecyclerView 来展示列表数据时,获取 item 的位置是一个常见的需求。RecyclerView 提供了多种获取 item 位置的方法,包括 getAdapterPosition()、getBindingAdapterPosition()、getAbsoluteAdapterPosition() 等等。

wsfsp_4的博客 7823

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

BaseAdapter实现ListView中item上每个控件的获取以及点击

借鉴这位大神的代码,自己稍微修改了一下(其实也没改多少),把源码出来大家看看,刚开始学习android,有很多不懂的地方,望大家多多指教 先来一张效果图,点击任何一个button,获取button的值,具体动作,大家可以自行修改 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/

xiao333ma的专栏 5499

linux那些事之numa balance

numa balance numa balance是页迁移技术最重要也是最开始使用应用的技术,主要是为解决由于调度器进程在两个node迁移造成访问内存性能问题。 numba balance通过页迁移技术,将不在运行节点的内存迁移到所运行的节点上。对应numa balance要注意几点: 防止进程在两个节点之前来回切换造成频繁进行页迁移(ping pang现场)从而影响性能。numa balance本身就是为了提高性能,不能因为造成频繁页迁移而对性能进行一个反向优化。 多个线程分布在不同线程 访.

weixin_42730667的博客 3908

Open3D 计算点云法向量的夹角【2026最新版】

计算法向量的夹角,博客长期更新,本文最新更新时间为:2026年3月7日。

点云侠的博客 3131

android github listview,Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)...

demo源码,需要可以下载1.这是一个github开源项目,先去github上面下载,github下载地址。2.将SwipeMenuListView项目,导入,然后新建项目如果要引用,要设置为相应的lid应用,如图勾选。 3.activity_main.xml 的布局文件代码:android:id="@+id/listView"android:layout_width="match_parent...

weixin_39651325的博客 225

基于STM32设计的温室大棚种植监测系统(onenet+GPRS通信)

当前所设计的温室大棚种植监测系统基于STM32单片机开发,它能够对温室大棚内的温度、湿度、光照强度、土壤湿度、二氧化碳含量等环境参数进行实时监测,并将数据传输至OneNET云平台,实现了远程监测和管理。该系统具有体积小、功耗低、可靠性高等特点,适合在温室大棚等场合使用。

7872

android 获取ListView内部Item高度

今天,简单讲讲android 如何  获取ListView内部Item高度。 这个比较简单,但是之前自己不知道怎么做,在网上查了资料才找到。所以记录一下。 在外面取: ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return

谢岩的博客 3978

【扣子AI开发】如何开发一个图像生成智能体?

【扣子AI开发】如何开发一个图像生成智能体,从创建到发布

tl437002770的博客 2427

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于安卓listview获得item中的控件问题

我的程序里面是用到了安卓的listview来显示数据,主要用SimpleAdapter适配器,然而怎么获取listview的item中的控件呢?就如说我这里做了一个显示地址管理。而让我苦恼的是要怎么获取里面的删除控件呢?一开始我想直接取出来然后给它设置监听器,运行奔溃了,后来想了想,也是,你的listview每个item的布局都是一样的,我怎么知道你是点击哪个的。所这个还是要...

weixin_33910137的博客 455

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Andorid关于如何获取listview中子item的控件的问题

Andorid 开发中我们常常会用到listview这个控件,而listview中如何获取到子item的控件并设置相应事件则相对复杂,并且自定义listview常常需要自定义适配器等等,下面这篇文章将主要介绍如何获取item控件并设置响应事件,主要实现如何点击listview子item中的一个按钮跳转到下一个Activity。废话不多说直...

weixin_34208283的博客 348

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ListView

ListView是android开发使用最频繁的UI控件之一,在很多应用需要将内容以列表的形式显示出来,如下图所示的一个效果图上可以一发现,每一行显示的内容形式都是一致的,一个图片内容和2个文本内容,它是如何实现的呢,接下来开始用代码解析这张图片的实现过程。 1.首先介绍每一行内容的布局文件list_item.xml 图片和文本内容采用用水平布局,文本内容之间采用垂直布局,代码

SeaLong_的博客 431

Android item上的button,在activity中点击。

Android item上的button,在activity中点击。

l18203612341的博客 1647

RecyclerView学习笔记整理(3)解决item中关于跳转到另一个Activity的问题和判断多个item进行跳转到另一个Activity

首先我们需要解决一个问题 RecyclerView中的item如何从A到B跳转的问题?还有然后当我们解决了一个问题以后出现了第二个问题当出现多个item的时候如何从中进行跳转? 为此我们需要提前储备一些些知识。 需要先了解一些这篇文章如果对于item的点击事件不太了解的话。 Android中RecyclerView的Item点击事件(总结) 我们先来看一下实现的效果 这个是点击同意后进入后的ac...

入佛门六根不净,入商场狼性不足 4047

android listview单个item刷新某个控件

Logger.i(TAG, "更新加载图片的位置==" + position);               View childAt = fl_pp_lv.getChildAt(position - fl_pp_lv.getFirstVisiblePosition() + 1);               if (childAt != null) {

wh1076674227的博客 5046

Android 转场动画+Adapter启动Activity

Android 转场动画+Adapter启动Activity最近有个需求就是在RecyclerView中点击一个item然后跳出新的Activity,由于最近对于Material Design的翻译,所以也想做一个转场动画更为流畅的跳转。本文在环境 Android 5.0 及以上。

码 1096

Android Adapter回调接口

Andoird中当activity中需要处理adapter中listview的item点击事件,这时候需要用到回调接口,Adapter中定义的接口相当与发布,在activity中实现相当于是响应。  这样activity中便可以获取adapter中的数据: ①回调接口可以把adapter中处理过的数据传给activity。 ②Activity中获取item中数据可以直接用 adapter

b6325955的专栏 6812

java list 获取子listview_Andorid关于如何获取listview中子item的控件的问题

Andorid 开发中我们常常会用到listview这个控件,而listview中如何获取到子item的控件并设置相应事件则相对复杂,并且自定义listview常常需要自定义适配器等等,下面这篇文章将主要介绍如何获取item控件并设置响应事件,主要实现如何点击listview子item中的一个按钮跳转到下一个Activity。废话不多说直接上代码:主文件:MainActivity(当前Activi...

weixin_33280038的博客 494

Android-RecyclerView系列 RecyclerView控件Item点击事件全解

愿所有人都摆脱冷气,只是向上走,不必听自暴自弃者流的话 (一)原理讲解: 为RecyclerView的每个子item设置setOnClickListener,然后在onClick中再调用一次对外封装的接口,将这个事件传递给外面的调用者。 传递给外面的调用者:Activity / Fragment 而非Adapter内部直接设置Item点击事件 (二)逻辑代码实战 代码构建位置:RecyclerView的Adapter中 第一步:首先要定义一个对外(Activity/Fragment)的接口,并声明一.

圈池 1917

Recyclerview的Adapter的使用以及item以及item内部的点击事件

这个是Activity的调用 package com.app.chuanghehui.ui.activity import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.support.v7.widget.DividerItemDecoration import android.s...

MR_Condingson的博客 828
上一篇: android listview上拉加载成功后回到第一个item问题
下一篇: Android中View绘制流程以及invalidate()等相关方法分析
书信一封~
博客等级 码龄10年 11粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值