在使用ListFragment时,发现一个奇怪的问题,就是getListView().setOnItemClickListener(new OnItemClickListener...)不起作用。在stackoverflow查了一下,都说是重写一下OnListItemClick函数就 好了。一番研究之后,发现了其中奥秘。

之前代码是这样写的:

onCreateView函数有如下代码。

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

list = (ListView) view.findViewById(android.R.id.list);

list.setAdapter(new ArrayAdapter<String>(activity, android.R.layout.simple_list_item_1, data));

list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int pos, long id) {
search.setText(data.get(pos));
Step.next();
}
});

但是红色部分一直运行不到

查找ListFragment.java源代码部分如下:

final private AdapterView.OnItemClickListener mOnClickListener
= new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
onListItemClick((ListView)parent, v, position, id);
}
};
public void onListItemClick(ListView l, View v, int position, long id) {
} public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ensureList(); } private void ensureList() {
...
mList.setOnItemClickListener(mOnClickListener);
... }

所以,问题出在这里,在onCreateView里setOnItemClickListener设置后,onViewCreated又会再一次 setOnItemClickListener,从而覆盖了之前的。正确的做法当然是重写onListItemClick即可。但是我觉得也可以在 onViewCreated重写以达到自定义的目的的。

ListFragment和ListActivity的setOnItemClickListener不起作用的更多相关文章

  1. 关于Fragment你所需知道的一切!

    转载自刘明渊 的博客地址:http://blog.csdn.net/vanpersie_9987 Fragment 是 Android API 中的一个类,它代表Activity中的一部分界面:您可以 ...

  2. Android为TV端助力 关于Fragment你所需知道的一切!

    转载自刘明渊 的博客地址:http://blog.csdn.net/vanpersie_9987 Fragment 是 Android API 中的一个类,它代表Activity中的一部分界面:您可以 ...

  3. Android Fragment 详解(未完...)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. 之前写过一篇关于 Fragment 生命周期的文章 ...

  4. Android开发笔记——ListView模块、缓存及性能

    ListView是Android开发中最常用的组件之一.本文将重点说明如何正确使用ListView,以及使用过程中可能遇到的问题. ListView开发模块 图片缓存 可能遇到的问题 一.ListVi ...

  5. ListFragment源码 (待分析)

    /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  6. android ListView详解继承ListActivity

    [转]http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 在android开发中ListView是比较常用的组件,它以列表的形式展 ...

  7. Android ListView ListActivity PreferenceActivity背景变黑的问题ZT

    Android ListView ListActivity PreferenceActivity背景变黑的问题 ListView在滚动时背景会变暗甚至变黑,这个要从Listview的效果说起,默认的L ...

  8. android学习--视图列表(ListView和ListActivity)

    说明: 视图列表(ListView和ListActivity)与AutoComplete.Spinner类似,它们都须要一个供显示的列表项,能够须要借助于内容Adapter提供显示列表项 创建List ...

  9. 【Android基础】listview控件的使用(2)-------继承自ListActivity的普通listview

    由于listview在android控件中的重要性,所以android为我们直接封装了一个类ListviewActivity,直接将listview封装在了activity之中,在本篇中,我将介绍在L ...

随机推荐

  1. strace排除Linux服务器故障

    strace是一个有用的小工具 – 大多数Linux系统默认已经安装 – 可以通过跟踪系统调用来让你知道一个程序在后台所做的事情.Strace是一个基础的调试工具;但是即便你不是在跟踪一个问题的时候它 ...

  2. Python成长之路第二篇(1)_数据类型内置函数用法

    数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...

  3. 恶补ASP.NET基础【1】委托

    委托(delegate)是一种可以把引用存储为函数的类型. 委托的声明类似于函数,但不带函数体,且要使用delegate关键字,委托的声明指定了一个返回类型和一个参数列表. 在定义了委托之后,就可以声 ...

  4. listvew加载更多

    http://bbs.51cto.com/thread-968277-1.html 又是新的一周的开始,上午自己写了上拉加载更多数据的demo,嘿嘿这里和大家分享.   android开发中,list ...

  5. 加密芯片ALPU

    加密芯片ALPU 纽文微电子(上海)有限公司 n  公司简介 NEOWINE是一家半导体开发公司,2002年6月成立于韩国,于2011年在中国设法人;  研发总部位于韩国京畿道,并在上海.深圳设办事处 ...

  6. C#正则表达式匹配任意字符

    原文:C#正则表达式匹配任意字符 不得不说正则很强大,尤其在字符串搜索上 匹配任意字符,包括汉字,换行符: [\s\S]*. 版权声明:本文为博主原创文章,未经博主允许不得转载.

  7. registered the JBDC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. (转)

    最近项目中遇见一问题,在开发环境没有问题的代码,到了生产环境就会报如下错误:   严重: A web application registered the JBDC driver [oracle.jd ...

  8. jquery $ dollar符号用法总结

    参考:https://github.com/chyingp/blog/blob/master/jquery/jQuery%E6%BA%90%E7%A0%81-%E7%BE%8E%E5%85%83$%E ...

  9. hdu 5533 Dancing Stars on Me(数学,水)

    Problem Description The sky was brushed clean by the wind and the stars were cold in a black sky. Wh ...

  10. Android单元測试之JUnit

    随着近期几年測试方面的工作慢慢火热起来.常常看见有招聘測试project师的招聘信息.在Java中有单元測试这么一个JUnit 方式,Android眼下主要编写的语言是Java,所以在Android开 ...