【发布时间】:2015-10-14 20:56:54
【问题描述】:
我正在制作一个应用程序,以在屏幕上打印具有 uuid、主要和次要值的信标列表。每个值都存储为 xml 文件中的文本视图。这很好用,但我还想在带有信标的整个列表下方设置一个带有四个按钮的表格行。但是,当我在 xml 文件中添加表格行时,带有按钮的表格会一直显示在列表中的每个位置。
示例:http://i.stack.imgur.com/HEvbC.jpg
所以我的问题是如何在由 textviews 组成的列表下方设置按钮表?
我的 xml 文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/device_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24dp"/>
<TextView android:id="@+id/device_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"/>
<TextView android:id="@+id/device_uuid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"/>
<TextView android:id="@+id/device_major"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"/>
<TextView android:id="@+id/device_minor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"/>
<TableRow
android:id="@+id/tableRow5cl"
android:layout_width="wrap_content"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content">
<Button
android:id="@+id/newscl"
android:layout_height="match_parent"
android:text="News"
android:layout_weight=".3" android:layout_width="wrap_content" android:gravity="center_horizontal"/>
<Button
android:id="@+id/loccl"
android:layout_height="match_parent"
android:text="---"
android:layout_weight=".3" android:layout_width="wrap_content" android:gravity="center_horizontal"/>
<Button
android:id="@+id/leccl"
android:layout_height="match_parent"
android:text="----"
android:layout_gravity="right" android:layout_weight=".3" android:layout_width="wrap_content" android:gravity="center_horizontal"/>
<Button
android:id="@+id/clacl"
android:layout_height="match_parent"
android:text="---"
android:layout_weight=".3" android:layout_width="wrap_content" android:gravity="center_horizontal"/>
</TableRow>
</LinearLayout>
列表适配器
private class LeDeviceListAdapter extends BaseAdapter {
private ArrayList<IBeacon> mLeDevices;
private LayoutInflater mInflator;
public LeDeviceListAdapter() {
super();
mLeDevices = new ArrayList<IBeacon>();
mInflator = DeviceScanActivity.this.getLayoutInflater();
}
public void addDevice(IBeacon device) {
if(!mLeDevices.contains(device)) {
mLeDevices.add(device);
}
}
public IBeacon getDevice(int position) {
return mLeDevices.get(position);
}
public void clear() {
mLeDevices.clear();
}
@Override
public int getCount() {
return mLeDevices.size();
}
@Override
public Object getItem(int i) {
return mLeDevices.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder;
if (view == null) {
view = mInflator.inflate(R.layout.listitem_device, null);
viewHolder = new ViewHolder();
viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
viewHolder.deviceUUID = (TextView) view.findViewById(R.id.device_uuid);
viewHolder.deviceMajor = (TextView) view.findViewById(R.id.device_major);
viewHolder.deviceMinor = (TextView) view.findViewById(R.id.device_minor);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
IBeacon device = mLeDevices.get(i);
final String deviceName = "Kontakt";
if (deviceName != null && deviceName.length() > 0)
viewHolder.deviceName.setText(deviceName);
else
viewHolder.deviceName.setText(R.string.unknown_device);
//viewHolder.deviceAddress.setText(device.getAddress());
viewHolder.deviceUUID.setText(device.getUuid());
viewHolder.deviceMajor.setText(device.getMajor());
viewHolder.deviceMinor.setText(device.getMinor());
return view;
}
}
【问题讨论】:
标签: android xml android-layout button textview