虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android之ListView设置

Android之ListView设置
类别:Android编程   作者:码皇   来源:互联网   点击:

Android开发中,我们常使用到ListView视图,下面介绍ListView的几种使用方法。主界面首先,在主界面上添加几个按钮,用于界面跳转。界面布局:

Android开发中,我们常使用到ListView视图,下面介绍ListView的几种使用方法。

 

主界面

首先,在主界面上添加几个按钮,用于界面跳转。

界面布局:

 


源码:

 

 

    package com.example.listviewdemo;
    import android.os.Bundle;
    import android.view.View;
    import android.app.Activity;
    import android.content.Intent;
    public class MainActivity extends Activity{
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }
    public void Button1(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, Activity01.class);
    startActivity(intent);
    }
    public void Button2(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, Activity02.class);
    startActivity(intent);
    }
    public void Button3(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, Activity03.class);
    startActivity(intent);
    }
    public void Button4(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, SimpleList.class);
    startActivity(intent);
    }
    public void Button5(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, TitleList.class);
    startActivity(intent);
    }
    public void Button6(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, IconList.class);
    startActivity(intent);
    }
    public void Button7(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, ColorList.class);
    startActivity(intent);
    }
    public void Button8(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, ArrayList.class);
    startActivity(intent);
    }
    public void Button9(View v) {
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, MyTest.class);
    startActivity(intent);
    }
    }

效果:

 

 

使用ListView设置界面

 

    package com.example.listviewdemo;
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    public class Activity01 extends Activity{
    private ListView listView;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    listView = new ListView(this);
    listView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1,getData()));
    setContentView(listView);
    }
    private List getData(){
    List data = new ArrayList();
    data.add("测试数据1");
    data.add("测试数据2");
    data.add("测试数据3");
    data.add("测试数据4");
    return data;
    }
    }

效果

 

 

使用SimpleAdapter设置界面

 

    package com.example.listviewdemo;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.widget.SimpleAdapter;
    public class Activity02 extends ListActivity{
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.vlist, new String[]{
    "title","info","img"}
    , new int[]{
    R.id.title,R.id.info,R.id.img}
    );
    setListAdapter(adapter);
    }
    private List> getData() {
    List> list = new ArrayList>();
    Map map = new HashMap();
    map.put("title", "标题1");
    map.put("info", "内容1");
    map.put("img", R.drawable.icon_marka);
    list.add(map);
    map = new HashMap();
    map.put("title", "标题2");
    map.put("info", "内容2");
    map.put("img", R.drawable.icon_markb);
    list.add(map);
    map = new HashMap();
    map.put("title", "标题3");
    map.put("info", "内容3");
    map.put("img", R.drawable.icon_markc);
    list.add(map);
    return list;
    }
    }

 

 

vlist布局

 

 


效果

 

使用MyAdapter设置界面

 

    package com.example.listviewdemo;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import android.app.AlertDialog;
    import android.app.ListActivity;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    public class Activity03 extends ListActivity{
    private List> mData;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mData = getData();
    MyAdapter adapter = new MyAdapter(this);
    setListAdapter(adapter);
    }
    private List> getData() {
    List> list = new ArrayList>();
    Map map = new HashMap();
    map.put("title", "标题1");
    map.put("info", "内容1");
    map.put("img", R.drawable.icon_marka);
    list.add(map);
    map = new HashMap();
    map.put("title", "标题2");
    map.put("info", "内容2");
    map.put("img", R.drawable.icon_markb);
    list.add(map);
    map = new HashMap();
    map.put("title", "标题3");
    map.put("info", "内容3");
    map.put("img", R.drawable.icon_markc);
    list.add(map);
    return list;
    }
    @Override protected void onListItemClick(ListView l, View v, int position, long id) {
    String string = "click" + (String)mData.get(position).get("title");
    Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
    }
    public void showInfo() {
    new AlertDialog.Builder(this) .setTitle("我的listview") .setMessage("介绍...") .setPositiveButton("确定", new DialogInterface.OnClickListener() {
    @Override public void onClick(DialogInterface dialog, int which) {
    }
    }
    ) .show();
    }
    public final class ViewHolder {
    public ImageView img;
    public TextView title;
    public TextView info;
    public Button viewBtn;
    }
    public class MyAdapter extends BaseAdapter {
    private LayoutInflater mInflater;
    public MyAdapter(Context context) {
    this.mInflater = LayoutInflater.from(context);
    }
    @Override public int getCount() {
    return mData.size();
    }
    @Override public Object getItem(int arg0) {
    return null;
    }
    @Override public long getItemId(int arg0) {
    return 0;
    }
    @Override public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    if (convertView == null) {
    holder=new ViewHolder();
    convertView = mInflater.inflate(R.layout.vlist2, null);
    holder.img = (ImageView)convertView.findViewById(R.id.img);
    holder.title = (TextView)convertView.findViewById(R.id.title);
    holder.info = (TextView)convertView.findViewById(R.id.info);
    holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);
    convertView.setTag(holder);
    }
    else {
    holder = (ViewHolder)convertView.getTag();
    }
    holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));
    holder.title.setText((String)mData.get(position).get("title"));
    holder.info.setText((String)mData.get(position).get("info"));
    holder.viewBtn.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
    showInfo();
    }
    }
    );
    return convertView;
    }
    }
    }

vlist2布局

 

 


效果

 

 

使用ListActivity设置一行内容界面

    package com.example.listviewdemo;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    public class SimpleList extends ListActivity{
    private String[] mListStr = {
    "标题1:内容1","标题2:内容2","标题3:内容3","标题4:内容4"}
    ;
    ListView mListView = null;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mListView = getListView();
    setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, mListStr));
    mListView.setOnItemClickListener(new OnItemClickListener() {
    @Override public void onItemClick(AdapterView adapterView, View view, int position,long id) {
    Toast.makeText(SimpleList.this,"您选择了" + mListStr[position], Toast.LENGTH_LONG).show();
    }
    }
    );
    }
    }

效果

 

使用ListActivity设置两行内容界面

 

    package com.example.listviewdemo;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    public class TitleList extends ListActivity{
    private String[] mListTitle = {
    "标题1", "标题2", "标题3", "标题4", "标题5"}
    ;
    private String[] mListStr = {
    "内容1", "内容2", "内容3", "内容4", "内容5" }
    ;
    ListView mListView = null;
    ArrayList> mData= new ArrayList>();
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mListView = getListView();
    int lengh = mListTitle.length;
    for(int i =0;
    i < lengh;
    i++) {
    Map item = new HashMap();
    item.put("title", mListTitle[i]);
    item.put("text", mListStr[i]);
    mData.add(item);
    }
    SimpleAdapter adapter = new SimpleAdapter(this,mData,android.R.layout.simple_list_item_2, new String[]{
    "title","text"}
    ,new int[]{
    android.R.id.text1,android.R.id.text2}
    );
    setListAdapter(adapter);
    mListView.setOnItemClickListener(new OnItemClickListener() {
    @Override public void onItemClick(AdapterView adapterView, View view, int position,long id) {
    Toast.makeText(TitleList.this,"您选择了标题:" + mListTitle[position] + "内容:"+mListStr[position], Toast.LENGTH_LONG).show();
    }
    }
    );
    }
    }

效果

 

 

使用ListActivity设置图标和两行内容界面

 

    package com.example.listviewdemo;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    public class IconList extends ListActivity{
    private String[] mListTitle = {
    "标题1", "标题2", "标题3", "标题4", "标题5"}
    ;
    private String[] mListStr = {
    "内容1", "内容2", "内容3", "内容4", "内容5" }
    ;
    ListView mListView = null;
    ArrayList> mData= new ArrayList>();
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mListView = getListView();
    int lengh = mListTitle.length;
    for(int i =0;
    i < lengh;
    i++) {
    Map item = new HashMap();
    item.put("image", R.drawable.ic_launcher);
    item.put("title", mListTitle[i]);
    item.put("text", mListStr[i]);
    mData.add(item);
    }
    SimpleAdapter adapter = new SimpleAdapter(this,mData,R.layout.iconlist, new String[]{
    "image","title","text"}
    ,new int[]{
    R.id.image,R.id.title,R.id.text}
    );
    setListAdapter(adapter);
    mListView.setOnItemClickListener(new OnItemClickListener() {
    @Override public void onItemClick(AdapterView adapterView, View view, int position,long id) {
    Toast.makeText(IconList.this,"您选择了标题:" + mListTitle[position] + "内容:"+mListStr[position], Toast.LENGTH_LONG).show();
    }
    }
    );
    }
    }

iconlist布局

 

 


效果

 

 

使用ListActivity设置背景图标文字效果

 

    package com.example.listviewdemo;
    import android.app.ListActivity;
    import android.content.Context;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    public class ColorList extends ListActivity{
    private String[] mListTitle = {
    "标题1", "标题2", "标题3", "标题4", "标题5"}
    ;
    private String[] mListStr = {
    "内容1", "内容2", "内容3", "内容4", "内容5" }
    ;
    ListView mListView = null;
    MyListAdapter myAdapter = null;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mListView = getListView();
    myAdapter = new MyListAdapter(this);
    setListAdapter(myAdapter);
    mListView.setOnItemClickListener(new OnItemClickListener() {
    @Override public void onItemClick(AdapterView adapterView, View view, int position,long id) {
    View v=adapterView.getChildAt(position);
    v.setBackgroundColor(Color.RED);
    Toast.makeText(ColorList.this,"您选择了" + mListStr[position], Toast.LENGTH_LONG).show();
    }
    }
    );
    }
    class MyListAdapter extends BaseAdapter {
    private int[] colors = new int[] {
    0xff626569, 0xff4f5257 }
    ;
    public MyListAdapter(Context context) {
    mContext = context;
    }
    public int getCount() {
    return mListStr.length;
    }
    @Override public boolean areAllItemsEnabled() {
    return false;
    }
    public Object getItem(int position) {
    return position;
    }
    public long getItemId(int position) {
    return position;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
    ImageView iamge = null;
    TextView title = null;
    TextView text = null;
    if (convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(R.layout.colorlist, null);
    iamge = (ImageView) convertView.findViewById(R.id.color_image);
    title =(TextView) convertView.findViewById(R.id.color_title);
    text= (TextView) convertView.findViewById(R.id.color_text);
    }
    int colorPos = position % colors.length;
    convertView.setBackgroundColor(colors[colorPos]);
    title.setText(mListTitle[position]);
    text.setText(mListStr[position]);
    iamge.setImageResource(R.drawable.icon_gcoding);
    return convertView;
    }
    private Context mContext;
    }
    }

colorlist布局

 

 


效果

 

 

使用ListActivity设置背景按钮图标文字效果

 

    package com.example.listviewdemo;
    import android.app.ListActivity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    public class ArrayList extends ListActivity{
    private String[] mListTitle = {
    "标题1", "标题2", "标题3", "标题4", "标题5"}
    ;
    private String[] mListStr = {
    "内容1", "内容2", "内容3", "内容4", "内容5" }
    ;
    ListView mListView = null;
    MyListAdapter myAdapter = null;
    ArrayList arrayList = null;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    arrayList = this;
    mListView = getListView();
    myAdapter = new MyListAdapter(this,R.layout.arraylist);
    setListAdapter(myAdapter);
    }
    public class MyListAdapter extends ArrayAdapter {
    int mTextViewResourceID = 0;
    private Context mContext;
    public MyListAdapter(Context context, int textViewResourceId) {
    super(context, textViewResourceId);
    mTextViewResourceID = textViewResourceId;
    mContext = context;
    }
    private int[] colors = new int[] {
    0xff626569, 0xff4f5257 }
    ;
    public int getCount() {
    return mListStr.length;
    }
    @Override public boolean areAllItemsEnabled() {
    return false;
    }
    public Object getItem(int position) {
    return position;
    }
    public long getItemId(int position) {
    return position;
    }
    public View getView(final int position, View convertView, ViewGroup parent) {
    ImageView iamge = null;
    TextView title = null;
    TextView text = null;
    Button button = null;
    if (convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(mTextViewResourceID, null);
    iamge = (ImageView) convertView.findViewById(R.id.array_image);
    title = (TextView) convertView.findViewById(R.id.array_title);
    text = (TextView) convertView.findViewById(R.id.array_text);
    button = (Button)convertView.findViewById(R.id.array_button);
    button.setOnClickListener(new OnClickListener() {
    @Override public void onClick(View arg0) {
    Toast.makeText(arrayList,"您点击的第"+position +"个按钮", Toast.LENGTH_LONG).show();
    }
    }
    );
    }
    int colorPos = position % colors.length;
    convertView.setBackgroundColor(colors[colorPos]);
    title.setText(mListTitle[position]);
    text.setText(mListStr[position]);
    if(colorPos == 0) iamge.setImageResource(R.drawable.icon_st);
    else iamge.setImageResource(R.drawable.icon_en);
    return convertView;
    }
    }
    }

arraylist布局

 

 


效果

 

 

使用ListView设置界面跳转

第一个界面

 

    package com.example.listviewdemo;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.AdapterView.OnItemClickListener;
    public class MyTest extends Activity{
    private ListView listView;
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    listView = new ListView(this);
    listView.setAdapter(new DemoListAdapter());
    setContentView(listView);
    listView.setOnItemClickListener(new OnItemClickListener() {
    @Override public void onItemClick(AdapterView adapterView, View view, int position,long id) {
    onListItemClick(position);
    }
    }
    );
    }
    void onListItemClick(int index) {
    Intent intent = null;
    intent = new Intent(this,demos[index].demoClass);
    startActivity(intent);
    }
    private static final DemoInfo[] demos = {
    new DemoInfo(R.string.title1, R.string.content1, MyTest2.class), new DemoInfo(R.string.title2, R.string.content2, MyTest2.class), new DemoInfo(R.string.title3, R.string.content3, MyTest2.class), }
    ;
    private class DemoListAdapter extends BaseAdapter {
    public DemoListAdapter() {
    super();
    }
    @Override public View getView(int position, View convertView, ViewGroup parent) {
    convertView = View.inflate(MyTest.this, R.layout.list, null);
    TextView title = (TextView)convertView.findViewById(R.id.title);
    TextView desc = (TextView)convertView.findViewById(R.id.info);
    title.setText(demos[position].title);
    desc.setText(demos[position].desc);
    return convertView;
    }
    @Override public int getCount() {
    return demos.length;
    }
    @Override public Object getItem(int position) {
    return demos[position];
    }
    @Override public long getItemId(int position) {
    return position;
    }
    }
    private static class DemoInfo {
    private final int title;
    private final int desc;
    private final Class demoClass;
    public DemoInfo(int title, int desc, Class demoClass) {
    this.title = title;
    this.desc = desc;
    this.demoClass = demoClass;
    }
    }
    }

第二个界面

 

 

    package com.example.listviewdemo;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    public class MyTest2 extends Activity{
    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View view = new View(this);
    setContentView(view);
    }
    }

list布局

 

 


效果

 

 

相关热词搜索: Android之ListView设置