Android怎么实现表格
时间: 2024-05-02 14:19:32 浏览: 63
Android可以通过ListView和GridView来实现表格。
1. 使用ListView
ListView可以通过设置Adapter来显示一个列表,而我们可以把ListView看成是一个竖直方向的列表,每一行都是一个item,每个item中可以包含多个TextView或其他控件,就可以实现表格了。代码示例:
```
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView" />
```
```
public class MyAdapter extends BaseAdapter {
private Context context;
private List<String[]> dataList;
public MyAdapter(Context context, List<String[]> dataList) {
this.context = context;
this.dataList = dataList;
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int position) {
return dataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_table, null);
holder = new ViewHolder();
holder.tv1 = (TextView) convertView.findViewById(R.id.tv1);
holder.tv2 = (TextView) convertView.findViewById(R.id.tv2);
holder.tv3 = (TextView) convertView.findViewById(R.id.tv3);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String[] data = dataList.get(position);
holder.tv1.setText(data[0]);
holder.tv2.setText(data[1]);
holder.tv3.setText(data[2]);
return convertView;
}
private class ViewHolder {
TextView tv1;
TextView tv2;
TextView tv3;
}
}
```
2. 使用GridView
GridView可以显示一个二维网格,每个格子可以包含一个View,我们可以把GridView看成是一个横向和纵向都可以滚动的表格。代码示例:
```
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/gridView"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth" />
```
```
public class MyAdapter extends BaseAdapter {
private Context context;
private List<String[]> dataList;
public MyAdapter(Context context, List<String[]> dataList) {
this.context = context;
this.dataList = dataList;
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int position) {
return dataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
textView = new TextView(context);
textView.setGravity(Gravity.CENTER);
textView.setPadding(10, 10, 10, 10);
} else {
textView = (TextView) convertView;
}
String[] data = dataList.get(position);
textView.setText(data[0] + "\n" + data[1] + "\n" + data[2]);
return textView;
}
}
```