Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42395
  • 博文数量: 71
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 726
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-24 08:29
文章分类

全部博文(71)

文章存档

2015年(71)

我的朋友

分类: Android平台

2015-02-20 12:40:15


  1. package com.example.imooc_listview;

  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;

  6. import android.app.Activity;
  7. import android.os.Bundle;
  8. import android.util.Log;
  9. import android.view.View;
  10. import android.widget.AbsListView;
  11. import android.widget.AbsListView.OnScrollListener;
  12. import android.widget.AdapterView;
  13. import android.widget.AdapterView.OnItemClickListener;
  14. import android.widget.ArrayAdapter;
  15. import android.widget.ListView;
  16. import android.widget.SimpleAdapter;
  17. import android.widget.Toast;

  18. public class MainActivity extends Activity implements OnItemClickListener,
  19.         OnScrollListener {

  20.     private ListView listView;
  21.     private ArrayAdapter<String> arr_adapter;
  22.     private SimpleAdapter simp_adapter;
  23.     private List<Map<String, Object>> dataList;

  24.     @Override
  25.     protected void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         setContentView(R.layout.main);
  28.         listView = (ListView) findViewById(R.id.listView);
  29.         dataList = new ArrayList<Map<String, Object>>();
  30.         /*
  31.          * 1.新建一个适配器 ArrayAdapter(上下文,当前ListView加载的每一个列表所对应的布局文件,数据源) 2.适配器加载数据源
  32.          * 3.视图(ListView)加载适配器
  33.          */
  34.         String[] arr_data = { "慕课网1", "慕课网2", "慕课网3", "慕课网4", "慕课网5", "慕课网6" };
  35.         arr_adapter = new ArrayAdapter<String>(this,
  36.                 android.R.layout.simple_list_item_1, arr_data);

  37.         /*
  38.          * context:上下文 data: 数据源(List> data)
  39.          * 一个Map所组成的List集合 每一个Map都会去对应ListView列表中的一行
  40.          * 每一个Map(键-值对)中的键必须包含所有在from中所指定的键 resource:列表中的布局文件ID from:Map中的键名
  41.          * to:绑定数据视图中的ID,与from成对应关系
  42.          */
  43.         simp_adapter = new SimpleAdapter(this, getData(), R.layout.item,
  44.                 new String[] { "pic", "text" }, new int[] { R.id.id_pic,
  45.                         R.id.id_text });
  46.         // listView.setAdapter(arr_adapter);
  47.         listView.setAdapter(simp_adapter);
  48.         listView.setOnItemClickListener(this);
  49.         listView.setOnScrollListener(this);
  50.     }

  51.     private List<Map<String, Object>> getData() {
  52.         for (int i = 0; i < 50; i++) {
  53.             Map<String, Object> map = new HashMap<String, Object>();
  54.             map.put("pic", R.drawable.ic_launcher);
  55.             map.put("text", "慕课网" + i);
  56.             dataList.add(map);
  57.         }
  58.         return dataList;
  59.     }

  60.     @Override
  61.     public void onScrollStateChanged(AbsListView view, int scrollState) {
  62.         switch (scrollState) {
  63.         case SCROLL_STATE_FLING:
  64.             Log.i("Main", "用户在手指离开屏幕之前,由于用力滑了一下,视图仍然由于惯性继续滑动。");
  65.             Map<String, Object> map = new HashMap<String, Object>();
  66.             map.put("pic", R.drawable.ic_launcher);
  67.             map.put("text", "增加项");
  68.             dataList.add(map);
  69.             simp_adapter.notifyDataSetChanged();
  70.             break;
  71.         case SCROLL_STATE_IDLE:
  72.             Log.i("Main", "视图已经停止滑动。");
  73.             break;
  74.         case SCROLL_STATE_TOUCH_SCROLL:
  75.             Log.i("Main", "手指没有离开屏幕,视图正在滑动。");
  76.             break;
  77.         default:
  78.             break;
  79.         }
  80.     }

  81.     @Override
  82.     public void onScroll(AbsListView view, int firstVisibleItem,
  83.             int visibleItemCount, int totalItemCount) {
  84.         // TODO Auto-generated method stub

  85.     }

  86.     @Override
  87.     public void onItemClick(AdapterView<?> parent, View view, int position,
  88.             long id) {
  89.         String text = listView.getItemAtPosition(position) + "";
  90.         Toast.makeText(this, "position=" + position + " text=" + text,
  91.                 Toast.LENGTH_SHORT).show();
  92.     }
  93. }


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android=""
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="horizontal" >

  6.     <ImageView
  7.         android:id="@+id/id_pic"
  8.         android:layout_width="wrap_content"
  9.         android:layout_height="wrap_content"
  10.         android:layout_marginLeft="15dp"
  11.         android:src="@drawable/ic_launcher" />

  12.     <TextView
  13.         android:id="@+id/id_text"
  14.         android:layout_width="wrap_content"
  15.         android:layout_height="wrap_content"
  16.         android:text="demo"
  17.         android:textColor="#000000"
  18.         android:textSize="20sp" />

  19. </LinearLayout>


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android=""
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >

  6.     <ListView
  7.         android:id="@+id/listView"
  8.         android:layout_width="match_parent"
  9.         android:layout_height="wrap_content" >
  10.     </ListView>

  11. </LinearLayout>

阅读(308) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~