文/程序員男神
前言
馬上就要到春節(jié)了,我還在公司上班贬蛙,因為我的心里只有工作雨女。領導看到是不是年后就要給我加薪了,話說這是第一次那么晚還沒回家過年阳准,雖然自己手上沒多少工作氛堕,但是沒年假的新人怎么破?只有擼起代碼野蝇,充實一下空虛的內心岔擂。
概述
官方文檔對其定義很簡單:
A view that shows items in a vertically scrolling list. The items come from the ListAdapter associated with this view.
是一種在垂直滾動列表中顯示item的視圖位喂。該item來自于listadapter相關的視圖浪耘。
簡單的使用方法
我們知道想要實現(xiàn)ListView展示簡單數(shù)據乱灵,只需三步。初始化ListView,得到數(shù)據源七冲,用適配器綁定數(shù)據源痛倚。這里我們實現(xiàn)了單選item,復選item澜躺,以及對item的監(jiān)聽蝉稳。單選、復選item需要兩步掘鄙,首先設置setChoiceMode,然后初始化適配器引用的布局部分也要修改耘戚。直接上代碼,代碼中已經明確注釋:
/**
* desc: ListView的基本使用
* author: dj
* date: 2017/1/24 11:00
*/
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv_show);
/*設置ListView的選中模式*/
//listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
/*初始化適配器*/
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, getDataSource());
/*設置適配器*/
listView.setAdapter(adapter);
/*item監(jiān)聽事件*/
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "OnItemClick", Toast.LENGTH_SHORT).show();
}
});
}
/*listView的數(shù)據源*/
public List<String> getDataSource() {
List<String> list = new ArrayList<String>();
for (int i = 0; i < 66; i++) {
list.add("Happy New Year " + i + " !");
}
return list;
}
}
xml文件很簡單操漠,我只設置divider(下劃線顏色)和dividerHeight(下劃線高度)兩個屬性收津,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/lv_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@color/gray"
android:dividerHeight="1dp" />
</LinearLayout>
效果圖如下:
總結
在這里有個疑問,我使用ButterKnife插件浊伙,總是報空指針異常撞秋?數(shù)據源和上文一致。