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. SMG12232ZK标准字符点阵型液晶显示模块的演示程序[C51编程语言][MCS51并行接口方式]

    //SMG12232ZK标准字符点阵型液晶显示模块的演示程序[C51编程语言][MCS51并行接口方式] //应用产品: SMG12232ZK标准中文字符点阵型液晶显示模块 // 本演示程序适用于SM ...

  2. Storm因机器断电等,启动supervisor异常

    Storm因机器断电等,启动supervisor错误 因机器断电或其他异常导致的supervisor意外终止,再次启动时报错: 2014-08-13 10:36:03 b.s.event [ERROR ...

  3. MVC模式 - 理解J2EE模式

        MVC模式Model-View-Controller头字母的缩写,中文翻译为“模型-视图-控制器” 模式(或者模型).该模式把一个GUI应用划分 业务逻辑处理(M),画面表示(V),控制(C) ...

  4. Sort--快速排序

    快速排序 1 public class QuickSort{ 2 3 public static int Partition(int[] a,int low,int high){ 4 int pivo ...

  5. 5个经典的JavaScript面试基础问题

    JavaScript程序员在IT领域中的需求量非常巨大.如果你非常精通JavaScript,你会有很多换工作.涨薪水的机会.但是在一家公司录用你之前,你必须顺利通过面试,证明你的技能.在本文中,我将向 ...

  6. leptonica 学习笔记2——pixBackgroundNormSimple

    1 pixBackgroundNormSimple 函数功能:自适应背影标准化 位置:adampmap.c /*-------------------------------------------- ...

  7. Fun with layers

    Fun with layers 这篇文章的有些内容很奇怪,我根本就没有这种现象,所以暂时就这样吧 In this post, I’ll explain how to add a border, rou ...

  8. Swift对面向对象提供了良好的支持,下面介绍几个其独有的特性。

    Swift对面向对象提供了良好的支持,下面介绍几个其独有的特性. 懒加载属性 Swift在语言层面上提供了类中懒加载属性的支持,使用lazy作为关键字: class Renderer { lazy v ...

  9. Modbus调试利器 Modbus Poll

    Modbus Poll是一个非常不错的工具,支持TCP/串口 下载地址:http://pan.baidu.com/share/link?shareid=2880213929&uk=248325 ...

  10. yii2 i18n学习

    举例说明常见的翻译:Yii::t('app','Login'):追踪源码:BaseYii.php 文件 ,Yii::t($category, $message, $params = [], $lang ...