android开发学习篇之ListView详解

我们在学习android开发中必然会学习到ListView,可以说ListView使用次数在android开发中非常多,因此我们要熟悉使用Listview,接下来写出我在网上学习到使用listview的几种方法:

1、使用ArrayAdapter适配器写出只存放简单字符串的listview以及使用SimpleAdapter写出带标题的listview

2、SimpleAdapter适配器带图片的ListView列表

3、BaseAdapter适配器自定义listview

第一种:使用ArrayAdapter适配器写出只存放简单字符串的listview以及使用SimpleAdapter写出带标题的listview

源代码如下:

package com.example.day2application;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListViewActivity extends ListActivity {

	String[] arrayList={"姓名:小明","电话:134947498949","QQ:78578438","地址:广东"};
	//String[] content={"小明","134947498949","78578438","广东"};
	ListView mlistView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mlistView=getListView();
		setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList));
		mlistView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				// TODO Auto-generated method stub
				Toast.makeText(ListViewActivity.this, "点击了"+arrayList[position],Toast.LENGTH_SHORT).show();
			}
		});
		
	}
	public class MyListAdapter extends ArrayAdapter<Object>{

		public MyListAdapter(Context context, int textViewResourceId) {
			super(context, textViewResourceId);
			// TODO Auto-generated constructor stub
		}
		
	}

}


运行结果如下:

使用SimpleAdapter:

package com.example.day2application;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class TitleListViewActivity extends ListActivity {

	private ListView mlistview;
	String titleStr[]={"姓名","电话","QQ","地址"};
	String contentStr[]={"小明","135785949","446545","广东"};
	ArrayList<Map<String, Object>> arrayList=new ArrayList<Map<String,Object>>();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mlistview=getListView();
		int lengh = titleStr.length;
		for(int index=0;index<lengh;index++){
			Map<String,Object> map=new HashMap<String, Object>();
			map.put("title", titleStr[index]);
			map.put("contentStr", contentStr[index]);
			arrayList.add(map);
		}
		//android.R.layout.simple_list_item_2这里可以自己写自定义的布局文件,
		SimpleAdapter simpleAdapter=new SimpleAdapter(this, arrayList, android.R.layout.simple_list_item_2, new String[]{"title","contentStr"}, new int[]{android.R.id.text1,android.R.id.text2});
		setListAdapter(simpleAdapter);
		mlistview.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				Toast.makeText(TitleListViewActivity.this, "点击了:标题是"+titleStr[position]+",内容:"+contentStr[position], Toast.LENGTH_LONG).show();
			}
		});
	}

}


运行结果如下:




第二种:带图片的ListView列表

先写布局配置文件activity_main_list.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="?android:attr/listPreferredItemHeight"
     >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:adjustViewBounds="true"
        android:padding="2dip"
        />
    <TextView 
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_above="@+id/text2"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        />
    <TextView 
         android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_alignParentBottom="true"
        android:ellipsize="marquee"
        android:singleLine="true"
        />
</RelativeLayout>


代码实现:

package com.tocean.android02;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.app.ListActivity;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

/**
 *  
 * @author Administrator
 *
 */
public class ListViewActivity extends ListActivity{

	private ListView listView;
	private String[] title={"姓名","电话","QQ","地址"};
	private String[] content={"小明","1334343434","33392832","广东"};
	private ArrayList<Map<String, Object>> arrayList=new ArrayList<Map<String,Object>>(); 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		listView=getListView();
		for(int i=0;i<title.length;i++){
			Map<String,Object> map=new HashMap<String, Object>();
			map.put("image", R.drawable.ic_launcher);
			map.put("title", title[i]);
			map.put("content", content[i]);
			arrayList.add(map);
		}
		SimpleAdapter simpleAdapter=new SimpleAdapter(this, arrayList, R.layout.activity_main_list, new String[]{"image","title", "content"},new int[]{R.id.image,R.id.text1,R.id.text2});
		setListAdapter(simpleAdapter);
		listView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				 Toast.makeText(ListViewActivity.this, "点击了标题是:"+title[position], Toast.LENGTH_SHORT).show();
				
			}
			
		});
	}

}


运行效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值