`

关于如何为ListView里控件添加监听方法

阅读更多

                    关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天做项目的时候发现想要添加一个ImageView监听方法,发现崩了,也许是好久没有动ListView竟然忘了不能直接在主UI的xml文件里面调用其他xml文件的控件,哪怕ListView用的是这个xml文件。

【错误示范】:

直接调用ImageView这个控件是ListView的控件,直接在非主控View java类文件调用,直接崩,之前还不知道这个问题。

msg=(ImageView).findViewById(R.id.msg);
			    msg.setOnClickListener(new OnClickListener() {
				
					
					}
				});

 【如何获取】:

public class CallListen implements OnItemClickListener{

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                          msg=(ImageView)view.findViewById(R.id.msg);
			    msg.setOnClickListener(new OnClickListener() {
				
					@Override
					public void onClick(View v) {
}
}
}

}

 在ListView监听方法里面使用控件的监听方法,其中最重要的是点击ListView获取到了里面所有控件的父类View

这样的话就可以通过 msg=(ImageView)view.findViewById(R.id.msg);获取到我们的控件了,这里面的view至关重要,这里面就涉及到一个知识,假如我这个activity setcontentview不是当前我想要使用控件的View怎么办?

LayoutInflater作用是将layoutxml布局文件实例化为View类对象。

获取LayoutInflater的方法有如下三种:

 

LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.main, null);
 
LayoutInflater inflater = LayoutInflater.from(context); (该方法实质就是第一种方法,可参考源代码)
View layout = inflater.inflate(R.layout.main, null);
 
LayoutInflater inflater = getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数)
View layout = inflater.inflate(R.layout.main, null);

这时候可能会疑惑:

setContentView 和Inflate

区别:
setContentView()
一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要LayoutInflater动态加载。

 这一节课内容很重要,因为很多时候遇到的坑都是没看这篇文章
0
0
分享到:
评论

相关推荐

    Android ListView里控件添加监听方法的实例详解

    Android ListView里控件添加监听方法的实例详解  关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天做项目的时候发现...

    android ListView子控件监听

    通常,我们可以为ListView设置一个适配器(Adapter),在适配器的getView()方法中为每个子项设置点击监听器。可以使用`OnClickListener`接口来实现这一功能: ```java public View getView(int position, View ...

    VB为Listview控件添加自定义可编辑列功能

    以下就是如何在VB中为Listview控件添加自定义可编辑列的详细步骤和相关知识点: 1. **创建Listview控件** 首先,你需要在你的窗体(Form)上添加一个Listview控件。在VB的工具箱(Toolbox)中找到ListView控件并将...

    ListView中动态添加控件

    当我们需要在ListView中动态添加控件时,通常涉及到列表项的自定义、适配器(Adapter)的使用以及数据集合(如ArrayList)的操作。以下是对这个主题的详细讲解。 1. **ListView的基本结构**: - **ListView**:是...

    C# Winform ListView添加按钮列

    要为`ListView`添加按钮列,我们可以通过自定义控件或者利用`OwnerDraw`事件来实现。 1. 自定义控件:你可以创建一个新的控件类,继承自`ListView`,然后在其中添加按钮列的绘制逻辑。这通常涉及到重写`...

    vb 中listview控件的使用方法

    首先,添加ListView控件到窗体。在VB的设计视图中,打开工具箱,找到ListView控件并将其拖放到窗体上。在属性窗口中,可以设置ListView的各种属性,如Width、Height、Location等,以调整其外观和位置。 ListView...

    C#listView控件的使用

    在C#编程中,ListView控件是一个非常常用且功能强大的组件,主要用于展示数据集,它提供了多种视图模式,如大图标、小图标等,并支持添加、删除项以及复选框功能。本教程将深入讲解如何利用C#的ListView控件进行开发...

    安卓手机 ListView控件的三种使用方式

    本教程将详细讲解如何在安卓手机上使用ListView控件,从基础到进阶,通过四个案例来帮助开发者掌握其精髓。 **一、ListView基本使用** 1. **布局文件**:首先,在XML布局文件中添加ListView,例如`activity_main....

    ListView滑动控件(一)(修正版)

    实现这一功能需要监听ListView的滚动状态,当滚动到达底部时,调用服务器接口加载新的数据,并在ListView中添加新数据项。 3. **自定义适配器**:滑动控件往往需要自定义Adapter,以便在列表项中加入滑动相关的布局...

    ListView分页控件(代码)

    在.NET框架中,ListView控件是一个非常强大的数据展示组件,尤其在Windows Forms应用程序中,它提供了灵活的数据绑定和自定义布局能力。在这个“ListView分页控件(代码)”项目中,开发者使用C#语言实现了从数据库...

    Android 类似于windows listview的控件

    在Android开发中,ListView是一种非常常见的控件,它与Windows中的ListView控件有着类似的功能,用于展示可滚动的多行数据列表。ListView以其高度可定制性和高效的数据处理能力,成为了展示大量数据的理想选择。本篇...

    ListView添加左滑删除控件

    本教程将详细介绍如何在ListView中实现左滑删除控件,并处理状态切换时的保持问题。 一、基本原理 左滑删除功能通常是通过监听ListView的滑动手势来实现的。当用户向左滑动列表项时,会显示一个删除按钮或者提示,...

    自定义的LISTVIEW控件

    在Windows编程领域,ListView控件是一种常见的用户界面元素,它允许用户以列表形式展示数据,支持多列、图标以及各种视图模式。本教程将深入探讨如何使用WIN32 API来编写一个自定义的ListView控件,以满足特定的需求...

    操作ListView控件源码

    本资源提供了关于操作ListView控件的源码,旨在帮助初学者理解并掌握其基本用法。以下是对ListView控件及其操作的详细说明。 **1. ListView的基本结构** ListView由一系列的列表项(ListView Item)组成,每个列表...

    C#-winform-listview控件美化

    每列可以有不同的标题,通过`Columns.Add()`方法添加,而数据则通过`Items.Add()`方法插入,每个项(Item)还可以包含多个子项(SubItem)来对应列的数据。 要实现列头的自定义绘制,我们需要重写`...

    ListView视图动态增加与删除控件条目,内容

    在Activity或Fragment中,当需要增加新条目时,调用Adapter的`add()`方法添加数据到数据源,然后调用`notifyDataSetChanged()`通知Adapter数据已改变,ListView会自动刷新并显示新的条目。 4. 实现动态删除: ...

    Delphi XE10.2之控件ListView强大功能

    总之,Delphi XE10.2中的ListView控件是一个功能齐全、性能优秀的组件,它提供的各种特性和方法为开发者构建数据展示和用户交互丰富的应用提供了强大支持。通过学习和实践这个示例,你可以深入掌握ListView控件的...

    android 实现listView内部控件的点击事件

    本例通过android中接口回调,实现listview内部控件的点击事件获取与处理。具体实现原理可查看我的博客:http://blog.csdn.net/u013318697/article/details/50615129

    监听listview垂直滚动距离

    在Android中,我们可以为ListView添加一个OnScrollListener,这个监听器提供了几个关键方法,其中`onScrollStateChanged(AbsListView view, int scrollState)`和`onScroll(AbsListView view, int firstVisibleItem, ...

Global site tag (gtag.js) - Google Analytics