layout.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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world" /> </RelativeLayout>

main.java

package com.example.day08_listview_listener;

import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends Activity { private ListView listView;
public static String[] citys = {"长沙","上海","深圳","广州","北京","广东","杭州","北京","天津","嘉兴","永州","衡阳","西安"};
private List<String> list;
private Myadapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化控件
listView = (ListView) findViewById(R.id.listview);
list = new ArrayList<String>();
for (int i = 0; i < citys.length; i++) {
list.add(citys[i]);
}
adapter = new Myadapter();
//设置适配器
listView.setAdapter(adapter);
//设置item点击事件
listView.setOnItemClickListener(new OnItemClickListener() {
/**
* 当点击适配器控件的item的时候调用
* AdapterView<?> parent,表示的是设置该适配器的适配器控件
* View view,表示的是被点击的item的view
* int position, 表示的是与被点击item的view的索引
* long id 表示id,该值与getItemId的返回值对应
*/
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.i("MainActivity", "MainActivity--onItemClick--position"+position);
}
});
//设置长按事件
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
/**
* 问题:当用户点击item的时间超过2s就会触发长按事件,如果同时设置了单击事件,会先触发长按,松开手时触发单击事件]
* 返回值 false
* 表示该方法不处理该事件(不消耗该事件),事件会交给其他的方法去处理
* 返回值 true
* 表示该方法消耗了该事件,该事件就不会交给其他的方法去调用
*/
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
//获取数据
String dataArray = citys[position];//方法一
String dataArray1 = (String) listView.getItemAtPosition(position);//方法二
String dataArray2 = (String) adapter.getItem(position) ;//方法三
String dataArray4 = (String) parent.getItemAtPosition(position);
Log.i("MainActivity", "MainActivity--onItemLongClick--position"+position);
return true;
}
}); }
class Myadapter extends BaseAdapter{ @Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
    3.实现getview
// 1.编写复杂样式的item布局
// 2.将xml文件转换成view
// 3.找到view中的控件
// 4.给控件设置值
// 5.返回view //第一种--获得布局加载器
/*LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.listview_item_city, null);*/
//第二种
/*LayoutInflater layoutInflater2 = LayoutInflater.from(MainActivity.this);
View view = layoutInflater2.inflate(R.layout.listview_item_city, null);*/
//第三种
// LayoutInflater layoutInflater = MainActivity.this.getLayoutInflater();
// View view = layoutInflater2.inflate(R.layout.listview_item_city, null);
//第四种
View view = View.inflate(MainActivity.this, R.layout.listview_item_city, null);

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
// 创建一个TextView 对象,设置参数并返回view
TextView textView = new TextView(MainActivity.this);
textView.setText(list.get(position));
textView.setTextSize(30);
return textView;
} } }

Android_listView_Listener的更多相关文章

随机推荐

  1. mycat分布式mysql中间件(数据库切分概述)[转]

    mysql数据库切分 前言 通 过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时 候,我们还是会面临到扩展 ...

  2. 020自动化测试 PK 手动测试

    一.手工测试为什么不可替代 手工测试是不可替代的,因为人是具有很强只能判断能力的,而工具是相对机械缺乏思维能力的东西 工具是人开发出来的 二.手工测试不可替代的表现 测试用例的设计:需要tester有 ...

  3. 劳动节BT5 aircrack-ng战记

    劳动节最后一天没事,想捣鼓一下BT5破解无线wep/wpa,BT5+virtual box早已准备就绪,上网专门找了一些资料,并买了一个据评测很兼容的usb网卡tp-link wn722n,芯片代号A ...

  4. PDF/WORD/EXCEL 图片预览

    一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourceP ...

  5. python join和split和strip用法

    python join 和 split方法的使用,join用来连接字符串,split恰好相反,拆分字符串的. strip()为去除开头结尾指定的字符,空着时是去除空白字符\t,\n,\r意思 1.jo ...

  6. 如何使用Paste.Deploy

    转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI ...

  7. Makefile.am讲解

    Makefile.am详解 实战Makefile.amMakefile.am是一种比Makefile更高层次的规则.只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等构成.表一列出了可执行 ...

  8. leetcode@ [124] Binary Tree Maximum Path Sum (DFS)

    https://leetcode.com/problems/binary-tree-maximum-path-sum/ Given a binary tree, find the maximum pa ...

  9. linux 配置静态IP

    ip配置方法是编辑sudo nano  /etc/network/interfaces 树莓派默认配置 auto lo iface lo inet loopback iface eth0 inet d ...

  10. 编译vo-aacenc遇到的问题

    sourceforge更新了vo-aacenc到0.1.3,就把自己的编码器也更新到最新.编译过程中无聊多测试了一下 发现一个小问题http://sourceforge.net/projects/op ...