Android:监听ListView

本文目录

  • 监听ListView点击事件
  • 监听ListView滚动事件

监听ListView点击事件

使用监听器OnItemClickListener

package com.example.testsend;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity{
    private ArrayAdapter<String> arr_adapt;
    private ListView list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list);

        list =(ListView)findViewById(R.id.list);
        String[] arr_data = {"数据1","数据2","数据3"};
        arr_adapt =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr_data);
        list.setAdapter(arr_adapt);

        ListClickListener l = new ListClickListener();
        list.setOnItemClickListener(l);
    }    

    //监听类
    class ListClickListener implements OnItemClickListener{
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub
            String text = list.getItemAtPosition(position)+"";
            Log.i("tag",text);
        }
    }

}

监听ListView滚动事件

使用监听器ListScrollListener

package com.example.testsend;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity{
    private ListView list;
    private SimpleAdapter sim_adapter;
    private List<Map<String, Object>>dataList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list);

        list =(ListView)findViewById(R.id.list);
    //填充数据
        dataList = new ArrayList<Map<String,Object>>();
        for(int i=0;i<20;i++){
            Map<String, Object>map = new HashMap<String,Object>();
            map.put("pic", R.drawable.ic_launcher);
            map.put("text","我的数据"+i);
            dataList.add(map);
        }
        sim_adapter = new SimpleAdapter(this, dataList, R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
        list.setAdapter(sim_adapter);

        //监听
        ListScrollListener l = new ListScrollListener();
        list.setOnScrollListener(l);
    }    

    //监听类
    class ListScrollListener implements OnScrollListener{

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub
            //每一条数据都是一个Map
            switch(scrollState){
            case SCROLL_STATE_FLING:
            Log.i("Main","用户在手指离开屏幕之前,由于滑了一下,视图仍然依靠惯性继续滑动");
            //添加一条数据
             Map<String, Object>map = new HashMap<String,Object>();
             map.put("pic", R.drawable.ic_launcher);
             map.put("text","新的在这里啊!");
             dataList.add(map);
            //刷新
             sim_adapter.notifyDataSetChanged();
            break;
            case SCROLL_STATE_IDLE:
            Log.i("Main", "视图已经停止滑动");
            break;
            case SCROLL_STATE_TOUCH_SCROLL:
            Log.i("Main","手指没有离开屏幕,视图正在滑动");
            break;
            }

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub手指跟屏幕接触就触发
            Log.i("onscroll", "测试");

        }

    }

}

item.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="match_parent"
    android:orientation="horizontal"
    >

<ImageView
    android:id="@+id/pic"
    android:layout_marginLeft="6dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"

    />
<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:gravity="center_vertical"
    android:text="文字"
    />
</LinearLayout>

下载此实例>>

Android:监听ListView

时间: 2024-12-25 05:45:04

Android:监听ListView的相关文章

Android 监听ListView、GridView滑动到底部

// 监听listview滚到最底部mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { // 当不滚动时 case OnScrollListener.SCROLL_STATE_IDLE: // 判断滚动到底部 if (view.get

Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向

很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷新和上拉加载更多.这个组件有个mode的属性,可以设置为both,即上下同时都可拉动.但是只设置这个属性的话,上拉与下拉产生的效果是完全一致的.所以要使用这个开源项目做到下拉刷新并同时可上拉加载更多,就需要在代码中进行一些处理. ==========================pulltoref

Android监听ScrollView滑动到顶端和底部

MainActivity如下: package cn.testscrollview; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ScrollView; import android.app.Activity; /** * Demo描述: * 监

监听Listview的滚动状态,是否滚动到了顶部或底部

/** * @author:Jack Tony * @description : 监听listview的滑动状态,如果到了顶部就刷新数据 * @date :2015年2月9日 */ private class ListViewListener implements OnScrollListener { @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int t

Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.content.BroadcastReceiver;  import android.content.Context;  import android.content.Intent;  import android.net.ConnectivityManager;  import android.ne

android 监听网络状态的变化及实战

android 监听网络状态的变化及实际应用 转载请注明博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/53008266 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 - 没有网络的错误 - 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据网络,当前连接的网络是否可用 网络没有打开情况下的处理,如弹出对话框,跳转到

Android监听HOME键的最简单的方法

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码 setContentView(R.la

android 监听返回键

android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { return true; } return super.onKeyDown(keyCode, event); } event.getRepeatCount() == 0重复次数:1次

Android 监听锁屏/开屏事件

1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2.  BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.ACTION_SCREEN_ON : 屏幕点亮 Intent.ACTION_SCREEN_OFF :屏幕关闭 Intent.ACTION_USER_PRESENT: 用户解锁 2.2. 权限 监听用户解锁需要在AndroidManifest中注册权限 <uses-permission android:n