设置页面布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</LinearLayout>
使用SimpleAdapter设置列表
新建一个item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/chgusr"
android:layout_marginLeft="15dp"/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="韩晨曦"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
java代码功能实现
public class SecondActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,AbsListView.OnScrollListener {
private Context mContext;
private ListView listView;
private SimpleAdapter simpleAdapter;
private ArrayAdapter<String> arrayAdapter;
public List<Map<String,Object>> addList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mContext = this;
// 加载数据链表的例子(ArrayAdapter为例)
listView=(ListView) findViewById(R.id.listview);
// 新建适配器
// 参数:(上下文,当前listView加载的每一个列表项所对应的布局文件,数据源)
// 适配器加载数据源
String[] arr_data={"ff","df","fsdf","fdsdf"};
arrayAdapter=new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,arr_data);
// 加载数据链表的例子(simpleAdapter为例)
// 参数(上下文,数据源(特定泛型集合组成,map所组成的list集合,每一个map对应列表的一行),
// 列表项的布局文件,Map中的键名,绑定数据视图中的id,与from成对应关系)
addList=new ArrayList<Map<String,Object>>();
simpleAdapter=new SimpleAdapter(mContext,getData(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
// 使用视图加载适配器
// listView.setAdapter(arrayAdapter);
listView.setAdapter(simpleAdapter);
//设置监听事件
listView.setOnItemClickListener(this);
listView.setOnScrollListener(this);
}
private List<Map<String,Object>> getData(){
// 数据源
for (int i=1;i<=20;i++){
Map<String,Object> map=new HashMap<String, Object>();
map.put("pic", R.drawable.chgusr);
map.put("text","我是第"+i+"个");
addList.add(map);
}
return addList;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String text= listView.getItemAtPosition(position)+"";
Toast.makeText(this,"position="+position+"text="+text, Toast.LENGTH_SHORT).show();
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState){
case SCROLL_STATE_FLING:
Log.i("main","用户在手指离开屏幕之前,由于用力滑了一下,视图任依靠惯性继续滑动");
Map<String,Object> map=new HashMap<String, Object>();
map.put("pic", R.drawable.chgusr);
map.put("text","添加项");
addList.add(map);
simpleAdapter.notifyDataSetChanged();
break;
case SCROLL_STATE_IDLE:
Log.i("main","视图已经停止滑动");
break;
case SCROLL_STATE_TOUCH_SCROLL:
Log.i("main","手指没有离开屏幕,视图正在滑动");
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
}
网友评论