序
这一节内容是对04的一个扩展训练。
实例
题目
在ListView控件中,使用BaseAdapter适配器。
程序结果展示界面
涉及到的知识点
与上节一样。详情请看通过实例学Android应用开发04
实现过程
- 新建一个Android应用工程
- 编辑MainActivity对应的布局文件activity_main.xml,包含一个TextView控件和一个ListView控件
- 创建ListView控件的列表布局文件list_item.xml,包含一个ImageView控件和一个TextView控件
- 创建列表控件使用的布局文件item.xml,包含三个TextView控件,通过使用布局属性android:layout_weight控制控件之间的间隔
- 编写程序MainActivity.java
源码
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="对ListView空间应用数据适配器BaseAdapter"/>
<ListView android:layout_width="match_parent" android:layout_height="wrap_content"
android:id="@+id/personLV"/>
</LinearLayout>
list_main.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:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_launcher_foreground"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/tv"
android:layout_gravity="center_vertical"/>
</LinearLayout>
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"
android:padding="10dp">
<TextView android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_weight="1" android:text="1" android:textSize="20sp"
android:id="@+id/idTV"/>
<TextView android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_weight="2" android:text="张三" android:textSize="20sp"
android:id="@+id/nameTV"/>
<TextView android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_weight="2" android:text="50000" android:textSize="20sp"
android:id="@+id/balanceTV"/>
</LinearLayout>
MainActivity.java
package com.example.application;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import android.view.ViewGroup;
public class MainActivity extends AppCompatActivity {
private List<Person> persons;
private ListView personLV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
persons = new ArrayList<Person>();
Person p = new Person(1,"张三",5000);
persons.add(p);
Person p1 = new Person(2,"李四",5600);
persons.add(p1);
Person p2 = new Person(3,"王五",5800);
persons.add(p2);
personLV = (ListView) this.findViewById(R.id.personLV);
personLV.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return persons.size();
}
@Override
public Object getItem(int i) {
return persons.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View item = View.inflate(getApplicationContext(),R.layout.item,null);
TextView idTV = (TextView) item.findViewById(R.id.idTV);
TextView nameTV = (TextView) item.findViewById(R.id.nameTV);
TextView balanceTV = (TextView) item.findViewById(R.id.balanceTV);
Person p = persons.get(i);
idTV.setText(p.getId()+"");
nameTV.setText(p.getName()+"");
balanceTV.setText(p.getBalance()+"");
return item;
}
});
}
}
Person.java
package com.example.application;
public class Person {
private Integer id;
private String name;
private Integer balance;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getBalance() {
return balance;
}
public void setBalance(Integer balance) {
this.balance = balance;
}
public Person() {
}
public Person(Integer id, String name, Integer balance) {
this.id = id;
this.name = name;
this.balance = balance;
}
}
|