ListView基本使用

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值