ListView的注册点击事件1

ListView的注册点击事件1

//注册点击事件

personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

/**

*

* @param parent 当前ListView

* @param view 代表当前被点击的条目

* @param position 当前条目的位置

* @param id 当前被点击的条目的id

*/

@Override

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

Log.d(tag,"点击了!");

/*

方法 1:注册一个onItemClick事件,方法1:利用当前被点击条目的视图根据id找到tv_name,然后使用吐司显示被点击的内容

*/

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

Toast.makeText(MyActivity.this,"姓名是1:"+tv_name.getText(),Toast.LENGTH_SHORT).show();

/*

方法 2:利用当前被点击条目的位置,然后根据位置取到姓名;

*/

String name = persons.get(position).getName();

Toast.makeText(MyActivity.this,"姓名是2:"+name,Toast.LENGTH_SHORT).show();

/*

方法 3:parent在这里表示ListView的位置,这里得到被点击条目的位置,取到person对象并显示.

*/

Person p=(Person)parent.getItemAtPosition(position);

Toast.makeText(MyActivity.this,"姓名是3:"+p.getName(),Toast.LENGTH_SHORT).show();

}

});

activity类 相信没有人看不懂的

public class MyActivity extends Activity {

private ListView personListView;

private List<Person> persons;

LayoutInflater inflater;//打气筒

String tag="MyActivity.class";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//inflater是一个系统服务,初始化系统服务,利用inflater将一个布局文件转化为一个对象

inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);

setContentView(R.layout.main);

PersonDao personDao = new PersonDao(this);

persons = personDao.findAll();

//第一步,得到组件的id的引用

personListView = (ListView) this.findViewById(R.id.listview_show_data);

//第二步,设置组件要显示的内容,listview要显示的内容比较复杂,需要数据的适配器

personListView.setAdapter(new MyListAdapter());

//注册点击事件

personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

/**

*

* @param parent 当前ListView

* @param view 代表当前被点击的条目

* @param position 当前条目的位置

* @param id 当前被点击的条目的id

*/

@Override

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

Log.d(tag,"点击了!");

/*

方法 1:

*/

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

Toast.makeText(MyActivity.this,"姓名是1:"+tv_name.getText(),Toast.LENGTH_SHORT).show();

/*

方法 2:

*/

String name = persons.get(position).getName();

Toast.makeText(MyActivity.this,"姓名是2:"+name,Toast.LENGTH_SHORT).show();

/*

方法 3:

*/

Person p=(Person)parent.getItemAtPosition(position);

Toast.makeText(MyActivity.this,"姓名是3:"+p.getName(),Toast.LENGTH_SHORT).show();

}

});

}

public class MyListAdapter extends BaseAdapter {

/**

* 返回当前有多少个条目

* @return

*/

@Override

public int getCount() {

return persons.size();

}

/**

* 返回当前position位置对应的条目的object对象

* @param position

* @return

*/

@Override

public Object getItem(int position) {

return persons.get(position);

}

/**

* 返回当前position位置对应条目的id

* @param position

* @return

*/

@Override

public long getItemId(int position) {

return position;

}

/**

* 返回一个条目显示的具体内容

* 计算当前界面 会有多少个条目出现

* 1.得到每一个textview的高度

* 2.得到listview的高度

* 3.listview高度/textview高度=得到了一个屏幕显示textview的的个数

* listview的每一个条目的显示都需要调用一次getView的方法

* 屏幕上有多个item显示就会调用多少getview的方法

*

* @param position

* @param convertView

* @param parent

* @return

*/

@Override

public View getView(int position, View convertView, ViewGroup parent) {

//         TextView textView = new TextView(MyActivity.this);

//         textView.setText(persons.get(position).getName()+":"+persons.get(position).getAge());

//         return textView;

View view = inflater.inflate(R.layout.item, null);

Person person = persons.get(position);

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

TextView tv_age = (TextView) view.findViewById(R.id.tv_age);

tv_name.setText("姓名:" + person.getName());

tv_age.setText("年龄:" + person.getAge());

Log.d("item:",""+position);

return view;

}

}

}

水平有限,还有我常用的俩种稍后写......

时间: 2024-08-29 20:41:22

ListView的注册点击事件1的相关文章

ListView的注册点击事件2

使用接口回调和使用抽象类回调 接口回调 Adapter public class ContentAdapter extends BaseAdapter implements OnClickListener { private static final String TAG = "ContentAdapter"; private List<String> mContentList; private LayoutInflater mInflater; private Callb

popupwindow放置listview,并且使listview可以响应点击事件

最近在模仿微信的选择头像的功能,就是一个Popwindow里面是一个ListView,ListView是所有相册,用户点击里面的相册,那么那个相片展示的页面就会显示你选择的相册的相片 .刚开始发现里面的ListView不能获取点击事件,插入如下代码解决 popWinPlaylist.setFocusable(true); popWinPlaylist.update(); 随后发现popwindown以外的地方不能响应点击事件,其实你可以通过pw(PopupWindow对象).getContext

Android学习之解决ListView中item点击事件和item中Button点击事件冲突问题

在ListView中添加Button后,如果只是单纯的加入而不加限制的话,ListView的onClick点击事件没有响应,因为Button获取了item的焦点,想要两者都可点击,需要加上如下限制: 在ListView的适配器中的布局文件中添加: (1)在布局文件的根元素上中添加属性android:descendantFocusability="blocksDescendants" (2)在Button中添加属性android:focusable="false"和a

从Listview与Button点击事件冲突看安卓点击事件分发机制

题目有点长.其实实现Listview的时候大家都可能会碰到这样的一个问题,那就是Listview的OnItemClickListener点击事件与Button(或者checkbox)的touch(或者click)事件冲突的问题. 声明一下,非常感谢郭大师的这篇blog: http://blog.csdn.net/guolin_blog/article/details/9097463 原理参考了这篇blog,事实上也是本人功力不够不能阅读源码的缺陷啊. 下面说下自己的解决步骤: 1)首先先set一

防止多次引入js文件导致的重复注册点击事件

前端代码中的js文件如果是动态引入的或者是某个事件操作进行注册的,那么重复的引入js文件或者多次触发注册事件会导致事件多次进行注册,造成不必要的麻烦,所以需要在每次注册之前将先前的事件进行取消,下面以按钮的注册点击事件为例进行说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>

listview 模仿用户点击事件。

正确的方法 gvFlow.performItemClick(gvFlow.getChildAt(0),0,gvFlow.getAdapter().getItemId(0)); gvFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id)

Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)

1.main.xml <RelativeLayout 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" androi

Android listview的item点击事件失效Bug的解决

原因:listview布局中出现了button  .imaageButton.checkBox等可以点击的控件 第一种解决方法:在布局中添加android:descendantFocusability="blocksDescendants" 第二种解决方法:使用其他控件代替,在activity中用setOnClickListener监听点击事件

ListView的Item点击事件(消息传递)

转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢! 您可以到博客的“友情链接”中,“程序猿媛(最新下载)*.*”下载最新版本,持续更新!当前版本,也可直接点击“当前1.5版本”下载.     引子:自定义ListView的Adapter,给Item中的子控件(按钮.图标.文字等)添加点击事件,来进行点击后的不同处理,是经常要做的事情.但有些需要在处理事件中,对Activity中其他控件进行更新的话,通常把Adapter在Activity中实现,处理