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. 9Patch在Android平台的应用

  2. LA3942-Remember the Word(Trie)

    题意: 有s个不同的单词,给出一个长字符串把这个字符串分解成若干个单词的连接(可重复使用),有多少种分解方法 分析: dp[i]表示i开始的字符串能分解的方法数 dp[i]=sum(dp[i+len( ...

  3. 《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句

    条件和条件语句 下面的值在作为布尔表达式的时候,会被解释器看作假(False):False None    0    ""    ()    []    {} 条件执行和if语句 ...

  4. <转>DNS SOA记录

    http://www.sigma.me/2011/01/01/about_dns_soa.html 今天登入google webmaster,发现有好多crawl错误,一看,都是Domain name ...

  5. CodeForces 149D Coloring Brackets 区间DP

    http://codeforces.com/problemset/problem/149/D 题意: 给一个给定括号序列,给该括号上色,上色有三个要求 1.只有三种上色方案,不上色,上红色,上蓝色 2 ...

  6. codeforce 600A - Extract Numbers

    学习string #include <bits/stdc++.h> #define eps 1e-8 #define M_PI 3.141592653589793 ; using name ...

  7. 成功在BAE上部署ghost 5.0

    这周摸索着网站的建设,终于在今天成功上线!这里要谢谢ghost中文网和群里的网友,他的博客在这opengiser.他们的帮助太重要了.现在把过程记录下来,共同学习.试运营地址在edwardesire. ...

  8. ubuntukylin提取root权限及mongoDB部署

    UbuntuKylin下安装Mongodb (参照UbuntuKylin下安装Mongodb一文安装成功后的心得) 1.官网下载安装包  http://www.mongodb.org/dr/fastd ...

  9. android获取根视图

    android获取根视图 activity.getWindow().getDecorView()

  10. 压缩UI深度的代码实现

    记录一下,或许同样使用深度的NGUI以后会用到. 目前的项目的UI是用Stage3D实现的,采用了类似NGUI填写深度来确定覆盖关系,但同时可以使用的深度是有一个固定范围的,导致的问题是如果UI过多深 ...