新建模板istActivity2
页面布局: 因为采用的是listview的方式,所以在主页面添加ListView,新建list_item2,用于列表内的布局
【layout/activity_list2.xml】
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ListActivity2">
<ListView
android:id="@+id/lv_num_show"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
LinearLayout>
【layout/list_item2.xml】
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:id="@+id/list_item2"
android:background="@drawable/custom_border_">
<TextView
android:id="@+id/tv_number"
style="@style/list_text_one"
android:layout_weight="3"
android:text="6" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="7"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="2014-02-19 17:50:35"
android:textColor="@color/black"
android:textSize="15sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Admin"
android:textColor="@color/black"
android:textSize="15sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="2014-2-19"
android:textColor="@color/black"
android:textSize="15sp" />
LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center_vertical |right"
android:text="未审"
android:textSize="16sp" />
<Button
android:id="@+id/btnAudit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:layout_weight="3"
android:gravity="center"
android:text="审核"
android:textSize="22sp" />
LinearLayout>
实现列表:
【ListActivity2.java】
package com.example.firemanager;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class ListActivity2 extends AppCompatActivity {
private ListView lvNumShow;
private List listNums;
private NumAdapter numAdapter;
public void initData() {
if (listNums == null) {
listNums = new ArrayList<>();
}
// 以后可以从数据库直接调用
NumEntity number = new NumEntity("1");
listNums.add(number);
number = new NumEntity("2");
listNums.add(number);
number = new NumEntity("3");
listNums.add(number);
number = new NumEntity("4");
listNums.add(number);
number = new NumEntity("5");
listNums.add(number);
number = new NumEntity("6");
listNums.add(number);
number = new NumEntity("7");
listNums.add(number);
number = new NumEntity("8");
listNums.add(number);
number = new NumEntity("");
listNums.add(number);
number = new NumEntity("10");
listNums.add(number);
number = new NumEntity("11");
listNums.add(number);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list2);
lvNumShow = findViewById(R.id.lv_num_show);
initData();
numAdapter = new NumAdapter(ListActivity2.this, listNums);
//将列表和适配器绑定
lvNumShow.setAdapter(numAdapter);
}
}
【NumEntity.java】
package com.example.firemanager;
public class NumEntity {
private String number;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public NumEntity(String number) {
this.number = number;
}
}
【NumAdapter】
package com.example.firemanager;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
/***
* 1. 定义自己的适配器
*/
public class NumAdapter extends BaseAdapter {
private Context context;
private List<NumEntity> listNums;
public NumAdapter(Context context, List<NumEntity> listNums) {
this.context = context;
this.listNums = listNums;
}
/***
* 控制列表显示的条数
* @return
*/
@Override
public int getCount() {
if (listNums == null) {
return 0;
} else {
// return listNums.size();
return 7;
}
}
/***
* 返回第i个位置数据
* @param
* @return
*/
@Override
public Object getItem(int i) {
return listNums.get(i);
}
/***
* 返回第i个位置的id
* @param
* @returni
*/
@Override
public long getItemId(int i) {
return i;
}
/***
* 返回第i个位置的视图
* @param i
* @param view
* @param viewGroup
* @return
*/
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(R.layout.list_item2,null);
TextView tvNumber = view.findViewById(R.id.tv_number);
NumEntity numEntity = listNums.get(i);
tvNumber.setText(numEntity.getNumber());
return view;
}
}
【manifests】
<activity android:name=".ListActivity2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
总结: 列表的使用比其他几个困难很多,对于数据量较大的来说能提高很大的效率。