最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Android開(kāi)發(fā)學(xué)習(xí)教程(19)- Android RecyclerView列表用法

2023-01-28 14:53 作者:考研保研直通車(chē)  | 我要投稿

—— 放棄不難,但堅(jiān)持一定很酷。

RecyclerView是什么

RecyclerView是一個(gè)和ListView一樣用來(lái)顯示大量數(shù)據(jù)列表但是比ListView更高效的列表控件。關(guān)于ListView的學(xué)習(xí)請(qǐng)見(jiàn)上一篇文章。

RecyclerView有什么用

RecyclerView用來(lái)更高效的展示大量數(shù)據(jù)列表。

RecyclerView怎么用

1. 導(dǎo)入依賴(lài)包

1
implementation?'androidx.recyclerview:recyclerview:1.1.0'

2. 布局中加入RecyclerView控件

1
2
3
4
<androidx.recyclerview.widget.RecyclerView
????android:id="@+id/recyclerview"
????android:layout_width="match_parent"
????android:layout_height="match_parent"?/>

3. 實(shí)例化RecycleView并設(shè)置布局方式

1
2
3
4
RecyclerView recyclerView = findViewById(R.id.recyclerview);
LinearLayoutManager layoutManager =?new?LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);

其中LinearLayoutManager就是類(lèi)似ListView的功能,列表上下滾動(dòng)(LinearLayoutManager.VERTICAL)或者左右滾動(dòng)(LinearLayoutManager.VERTICAL)。除了可以設(shè)置為L(zhǎng)inearLayoutManager還可以設(shè)置GridLayoutManager、StaggeredGridLayoutMnager,GridLayoutManager是網(wǎng)格擺放,而StaggeredGridLayoutMnager則是瀑布流擺放。

4. 獲取數(shù)據(jù),定義自己的數(shù)據(jù)適配器并設(shè)置到RecyclerView上

自定義BaseAdapter可以展示任意類(lèi)型的數(shù)據(jù)列表項(xiàng),其實(shí)上面SimpleAdapter和ArrayAdapter都是繼承自BaseAdapter,區(qū)別在于getView方法,SimpleAdapter和ArrayAdapter的getView讀者可以自行查看源碼,基本和上面截取的一小段差不多。我們來(lái)看自定義BaseAdapter的用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
????// 獲取數(shù)據(jù),這里模擬獲取到了20條數(shù)據(jù)
????stringList =?new?ArrayList<>();
????for?(int?i =?0; i <?20; i++) {
????????stringList.add("Item"?+ i);
????}
????recyclerView.setAdapter(new?MyAdapter());
????// 定義自己的數(shù)據(jù)適配器
????class?MyAdapter?extends?RecyclerView.Adapter<myadapter.myviewholder> {
????????@NonNull
????????@Override
????????public?MyAdapter.MyViewHolder onCreateViewHolder(@NonNull?ViewGroup parent,?int?viewType) {
????????????View itemView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_recyclerview, parent,?false);
????????????return?new?MyViewHolder(itemView);
????????}
????????@Override
????????public?void?onBindViewHolder(@NonNull?MyAdapter.MyViewHolder holder,?int?position) {
????????????holder.tvName.setText(stringList.get(position));
????????}
????????@Override
????????public?int?getItemCount() {
????????????return?stringList ==?null???0?: stringList.size();
????????}
????// 定義緩存ViewHolder
????????class?MyViewHolder?extends?RecyclerView.ViewHolder {
????????????public?TextView tvName;
????????????public?MyViewHolder(View itemView) {
????????????????super(itemView);
????????????????tvName = itemView.findViewById(R.id.tv_name);
????????????????tvName.setOnClickListener(new?View.OnClickListener() {
????????????????????@Override
????????????????????public?void?onClick(View v) {
????????????????????????Toast.makeText(MainActivity.this, tvName.getText(), Toast.LENGTH_SHORT).show();
????????????????????}
????????????????});
????????????}
????????}
????}
</myadapter.myviewholder>

運(yùn)行效果:

源碼鏈接:https://yunjunet.cn/876790.html

Android開(kāi)發(fā)學(xué)習(xí)教程(19)- Android RecyclerView列表用法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
黄石市| 中卫市| 天长市| 邯郸市| 中江县| 东至县| 江源县| 北安市| 合水县| 原平市| 清涧县| 通州市| 甘泉县| 阿拉尔市| 新竹县| 宁安市| 松溪县| 黄龙县| 仪陇县| 吐鲁番市| 屯留县| 手机| 崇礼县| 东辽县| 义乌市| 博罗县| 台安县| 荣成市| 阳江市| 芷江| 聂荣县| 广元市| 桃源县| 甘泉县| 翁牛特旗| 邯郸市| 五台县| 咸丰县| 汝南县| 土默特右旗| 深水埗区|