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. 使用struts的同步令牌避免form的重复提交

    struts1避免重复提交 一.使用方法 1.  假如你要提交的页面为toSubmit.jsp: 2.  在打开toSubmit.jsp的Action1中加入:saveToken(request),例 ...

  2. 17、手势(Gesture)

    课程目标: 学习Android必不可少的手势的功能 了解手势识别原理 , 掌握制作,加载以及识别手势 写出自己的手势Demo 重点难点:手势机制的了解     手势库的制作 考核目标:请说一下手势库的 ...

  3. 国外程序员整理的Java资源

    好资料,慢慢学习.http://www.importnew.com/14429.html 构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理, ...

  4. 【转载】awk简介

    [转载自]http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于grep的查找, ...

  5. 【转载】 Linux用户态和内核态

    [说明]转载自 http://my.oschina.net/liubin/blog/27795 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分 ...

  6. 解决各大浏览器兼容问题hack

    解决各大浏览器兼容问题hack,IE6/ IE7/ IE8/ IE9/ Firefox/ Opera/ Webkit/ Chrome/ Safari. 浏览器兼容是网站前端页面制作最基本的问题,通常I ...

  7. setResult()设置无效,onActivityResult没有被调用

    情况1 呃,被坑了几个小时,后来发现,在调用setResult的时候,requestCode随便传了个Activity的RESULT_OK,而这个常量的值是-1,导致onActivityResult没 ...

  8. hdoj 1863 畅通工程

    并查集+最小生成树 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. 转载Ajax.Net--ScriptManager和UpdatePanel控件

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在,因 ...

  10. 关于 android的 渲染器 Shader

    因为公司在 自定义的画图上面比较苛刻(各种要求= =),最后又是改来改去的.反正是 Shader起到很大作用,特此记录一下下.在achartengine的基础上没有能满足他们= = androd 提供 ...