0

基本上我正在寻找的是我在 ListView 中的行看起来像这样:

Title:               Harry Potter
Hardcover:                    Yes
Own:                           No
Country:            United States

有人可以发布这些行之一的 XML 布局吗?我似乎无法正确使用我的代码。

这是我所拥有的完全错误且无法正常工作的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">

  <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="0"
         >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
      android:id="@+id/txtKey"
      android:layout_height="fill_parent"
      android:layout_gravity="left" 
      android:textSize="18dip" 
      android:layout_marginLeft="8dip"
      android:textStyle="bold"
      android:layout_marginTop="2dp"
      android:layout_marginBottom="2dp"
      android:text="test"
      />

            <TextView
      android:id="@+id/txtValue"
      android:layout_height="fill_parent"
      android:layout_gravity="right" 
      android:textSize="18dip" 
      android:layout_marginRight="8dip"
      android:layout_marginTop="2dp"
      android:layout_marginBottom="2dp"
      android:text="test2"
      />

        </TableRow>

        </TableLayout>

</LinearLayout>
4

2 回答 2

0

知道了。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">

  <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="0"
         >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/txtKey"
                android:text="Some text"
                android:textSize="18dip"
                android:textStyle="bold"
                android:layout_marginLeft="8dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:layout_weight="1.0"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
            />

            <TextView
                android:id="@+id/txtValue"
                android:text="Some text"
                android:textSize="18dip"
                android:layout_marginRight="8dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:layout_weight="1.0"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
            />

        </TableRow>

        </TableLayout>

</LinearLayout>
于 2012-08-02T23:49:22.397 回答
0

资源/布局/listitem.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView 
        android:id="@+id/textLeft"
        android:layout_weight="1"
        android:gravity="left"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView 
        android:id="@+id/textRight"
        android:layout_weight="1"
        android:gravity="right"
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

然后在您的活动中:

    ListView listView = (ListView) findViewById(R.id.list);
    listView.setAdapter(new BaseAdapter() {

        final String[][] keysAndValues = {
                {"key1", "value1"},
                {"key2", "value2"},
                {"key3", "value3"}
        };


        @Override
        public int getCount() {
            return keysAndValues.length;
        }

        @Override
        public String[] getItem(int position) {
            return keysAndValues[position];
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            TextView[] foundTextFields;

            if(convertView == null) {
                convertView = LayoutInflater.from(parent.getContext()).inflate(
                        R.layout.listitem, parent, false);
                foundTextFields = new TextView[] {
                        (TextView) convertView.findViewById(R.id.textLeft),
                        (TextView) convertView.findViewById(R.id.textRight)                     
                };
                convertView.setTag(foundTextFields);
            }
            else {
                foundTextFields = (TextView[]) convertView.getTag();
            }

            String[] item = getItem(position);
            foundTextFields[0].setText(item[0]);
            foundTextFields[1].setText(item[1]);

            return convertView;
        }
    });
于 2012-08-02T23:58:49.477 回答