package com.yztc_listview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
/**
* 演示ListView的基本使用(重点)
*/
public class MainActivity extends Activity {
private ListView lv;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
// 1.准备数据源
final String[] citys = getResources().getStringArray(R.array.citys);
// 2.将数据源的数据加载到适配器中
adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, citys);
// 3.将适配器中的数据加载到控件中
lv.setAdapter(adapter);
// ListView中每项item被点击的监听事件
lv.setOnItemClickListener(new OnItemClickListener() {
// 当ListView中item被点击时回调的方法
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {// 适配器控件,每一项视图,当前项的下标,当前项的id
// 1.从数据源中获取
String s1 = citys[position];
// 2.从适配器中获取数据
String s2 = adapter.getItem(position);
// 3.在parent中获取
String s3 = parent.getItemAtPosition(position).toString();
// 4.在ListView控件中获取
String s4 = lv.getItemAtPosition(position).toString();
Toast.makeText(MainActivity.this,
"s1=" + s1 + ",s2=" + s2 + ",s3=" + s3 + ",s4=" + s4, 0)
.show();
}
});
// ListView长按事件
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
// 当ListView中item被长按时回调的方法
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// 返回false表示对事件不处理(对长按和点击事件都会处理)
// 返回true表示对事件处理(点击事件和长按事件两者都存在只对长按事件处理)
return false;
}
});
}
}
布局
<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" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#aa0000"
android:dividerHeight="2dp" >
</ListView>
<!-- android:entries="@array/citys" 表示指定id的数组资源设置显示到listview中 -->
<!--
android:divider="#aa0000" 设置间距和间距颜色
android:dividerHeight="2dp" 这两个属性一块使用设置头尾间距
android:footerDividersEnabled="false"
android:headerDividersEnabled="true"
-->
</RelativeLayout>
数组
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">yztc_listview</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="citys">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
<item>重庆</item>
<item>成都</item>
<item>天津</item>
</string-array>
<string name="title_activity_main2">Main2Activity</string>
</resources>