我们在学习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();
}
});
}
}
运行效果:
2505

被折叠的 条评论
为什么被折叠?



