日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php listview,ListView简单实用

發布時間:2024/8/5 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php listview,ListView简单实用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節引言:本節我們來繼續學習沒有講完的UI控件部分,

回顧上一節,我們介紹了Adapter適配器的概念,然后學習了三個最簡單的適配器的使用:

ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,而本節給大家講解的是第一個

需搭配Adapter使用的UI控件:ListView,不過在版本中被RecyclerView這個新控件替換掉了!

列表作為最常用的控件之一,還是有必要好好學習的,本節以一個初學者的角度來學習

ListView,ListView的屬性,以及BaseAdapter簡單定義,至于ListView優化這些,

我們一步步來~莫急!

1.自定義BaseAdapter,然后綁定ListView的最簡單例子

先看看我們要實現的效果圖:

一個很簡單的ListView,自己寫下Item,然后加載點數據這樣~

下面貼下關鍵代碼:

Animal.java:

/**

*?Created?by?Jay?on?2015/9/18?0018.

*/

public?class?Animal?{

private?String?aName;

private?String?aSpeak;

private?int?aIcon;

public?Animal()?{

}

public?Animal(String?aName,?String?aSpeak,?int?aIcon)?{

this.aName?=?aName;

this.aSpeak?=?aSpeak;

this.aIcon?=?aIcon;

}

public?String?getaName()?{

return?aName;

}

public?String?getaSpeak()?{

return?aSpeak;

}

public?int?getaIcon()?{

return?aIcon;

}

public?void?setaName(String?aName)?{

this.aName?=?aName;

}

public?void?setaSpeak(String?aSpeak)?{

this.aSpeak?=?aSpeak;

}

public?void?setaIcon(int?aIcon)?{

this.aIcon?=?aIcon;

}

}

AnimalAdapter.java:自定義的BaseAdapter:

/**

*?Created?by?Jay?on?2015/9/18?0018.

*/

public?class?AnimalAdapter?extends?BaseAdapter?{

private?LinkedList?mData;

private?Context?mContext;

public?AnimalAdapter(LinkedList?mData,?Context?mContext)?{

this.mData?=?mData;

this.mContext?=?mContext;

}

@Override

public?int?getCount()?{

return?mData.size();

}

@Override

public?Object?getItem(int?position)?{

return?null;

}

@Override

public?long?getItemId(int?position)?{

return?position;

}

@Override

public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{

convertView?=?LayoutInflater.from(mContext).inflate(R.layout.item_list_animal,parent,false);

ImageView?img_icon?=?(ImageView)?convertView.findViewById(R.id.img_icon);

TextView?txt_aName?=?(TextView)?convertView.findViewById(R.id.txt_aName);

TextView?txt_aSpeak?=?(TextView)?convertView.findViewById(R.id.txt_aSpeak);

img_icon.setBackgroundResource(mData.get(position).getaIcon());

txt_aName.setText(mData.get(position).getaName());

txt_aSpeak.setText(mData.get(position).getaSpeak());

return?convertView;

}

}

最后是MainActivity.java:

public?class?MainActivity?extends?AppCompatActivity?{

private?List?mData?=?null;

private?Context?mContext;

private?AnimalAdapter?mAdapter?=?null;

private?ListView?list_animal;

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mContext?=?MainActivity.this;

list_animal?=?(ListView)?findViewById(R.id.list_animal);

mData?=?new?LinkedList();

mData.add(new?Animal("狗說",?"你是狗么?",?R.mipmap.ic_icon_dog));

mData.add(new?Animal("牛說",?"你是牛么?",?R.mipmap.ic_icon_cow));

mData.add(new?Animal("鴨說",?"你是鴨么?",?R.mipmap.ic_icon_duck));

mData.add(new?Animal("魚說",?"你是魚么?",?R.mipmap.ic_icon_fish));

mData.add(new?Animal("馬說",?"你是馬么?",?R.mipmap.ic_icon_horse));

mAdapter?=?new?AnimalAdapter((LinkedList)?mData,?mContext);

list_animal.setAdapter(mAdapter);

}

}

好的,自定義BaseAdapter以及完成數據綁定就是這么簡單~

別問我拿示例的代碼,剛開始學就會寫出這些代碼,我只是演示下流程,讓大家熟悉

熟悉而已~另外,也是為下面的屬性驗證做準備~

2.表頭表尾分割線的設置:listview作為一個列表控件,他和普通的列表一樣,可以自己設置表頭與表尾:

以及分割線,可供我們設置的屬性如下:footerDividersEnabled:是否在footerView(表尾)前繪制一個分隔條,默認為true

headerDividersEnabled:是否在headerView(表尾)前繪制一個分隔條,默認為true

divider:設置分隔條,可以用顏色分割,也可以用drawable資源分割

dividerHeight:設置分隔條的高度

翻遍了了API發現并沒有可以直接設置ListView表頭或者表尾的屬性,只能在Java中寫代碼

進行設置了,可供我們調用的方法如下:addHeaderView(View v):添加headView(表頭),括號中的參數是一個View對象

addFooterView(View v):添加footerView(表尾),括號中的參數是一個View對象

addHeaderView(headView, null, false):和前面的區別:設置Header是否可以被選中

addFooterView(View,view,false):同上

對了,使用這個addHeaderView方法必須放在listview.setAdapter前面,否則會報錯。

使用示例:

運行效果圖:

代碼實現:

先編寫下表頭與表尾的布局:

view_header.xml(表頭),表尾一樣,就不貼了:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center">

android:layout_width="match_parent"

android:layout_height="48dp"

android:textSize="18sp"

android:text="表頭"

android:gravity="center"

android:background="../style/images/android-tutorial-listview.html"

android:textColor="#FFFFFF"/>

MainActivty.java:

public?class?MainActivity?extends?AppCompatActivity?implements?AdapterView.OnItemClickListener{

private?List?mData?=?null;

private?Context?mContext;

private?AnimalAdapter?mAdapter?=?null;

private?ListView?list_animal;

private?LinearLayout?ly_content;

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mContext?=?MainActivity.this;

list_animal?=?(ListView)?findViewById(R.id.list_animal);

//動態加載頂部View和底部View

final?LayoutInflater?inflater?=?LayoutInflater.from(this);

View?headView?=?inflater.inflate(R.layout.view_header,?null,?false);

View?footView?=?inflater.inflate(R.layout.view_footer,?null,?false);

mData?=?new?LinkedList();

mData.add(new?Animal("狗說",?"你是狗么?",?R.mipmap.ic_icon_dog));

mData.add(new?Animal("牛說",?"你是牛么?",?R.mipmap.ic_icon_cow));

mData.add(new?Animal("鴨說",?"你是鴨么?",?R.mipmap.ic_icon_duck));

mData.add(new?Animal("魚說",?"你是魚么?",?R.mipmap.ic_icon_fish));

mData.add(new?Animal("馬說",?"你是馬么?",?R.mipmap.ic_icon_horse));

mAdapter?=?new?AnimalAdapter((LinkedList)?mData,?mContext);

//添加表頭和表尾需要寫在setAdapter方法調用之前!!!

list_animal.addHeaderView(headView);

list_animal.addFooterView(footView);

list_animal.setAdapter(mAdapter);

list_animal.setOnItemClickListener(this);

}

@Override

public?void?onItemClick(AdapterView>?parent,?View?view,?int?position,?long?id)?{

Toast.makeText(mContext,"你點擊了第"?+?position?+?"項",Toast.LENGTH_SHORT).show();

}

}

好的,代碼還是比較簡單的,從上面我們看出來一個要注意的問題,就是:添加表頭表尾后,我們發現positon是從表頭開始算的,就是你添加的第一個數據本來的postion是

0,但是此時卻變成了0,因為表頭也算!!

3.列表從底部開始顯示:stackFromBottom如果你想讓列表顯示你列表的最下面的話,那么你可以使用這個屬性,將stackFromBottom

屬性設置為true即可,設置后的效果圖如下:

4.設置點擊顏色cacheColorHint如果你為ListView設置了一個圖片作為Background的話,當你拖動或者點擊listView空白位置會發現

item都變成黑色了,這是時候我們可以通過這個cacheColorHint將顏色設置為透明:#00000000

5.隱藏滑動條我們可以通過設置:android:scrollbars="none" 或者 setVerticalScrollBarEnabled(true);

解決這個問題!

本節小結:好的,關于ListView的基本用法大概就這些,當然除了上述的這些屬性外還有其他的,

實際遇到再查查吧~這里知道如何去重寫BaseAdapter和完成數據綁定就好,下節我們來

教大家如何來優化這個BaseAdapter的編寫~

總結

以上是生活随笔為你收集整理的php listview,ListView简单实用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。