Ответ 1
То, что вы уже написали, должно фактически создать два столбца, дело в том, что они могут не располагаться так, как вы ожидаете на экране - столбцы будут как можно более узкими. Тег TableLayout в макете Android имеет несколько атрибутов. Одна из них - это растягивающие столбцы - если данные описанные столбцы будут растянуты так, чтобы заполнить всю указанную ширину. Если вам нужно, чтобы все они растягивались равномерно, используйте звезду, если вы хотите, чтобы какой-либо конкретный столбец растягивался, покрывая оставшееся пространство, используйте свой индекс на основе 1 (вы можете указать группу индексов). См. Здесь:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1" >
<TableRow android:layout_width="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ok"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bye" />
</TableRow>
</TableLayout>
Кстати, если вам нужна только одна строка, вы можете сделать то же самое с LinearLayout и ориентацией = "horizontal". Если у вас несколько строк, имейте в виду, что вы действительно имеете дело с таблицей - все строки столбца будут расположены точно один над другим, а самая широкая строка будет определять ширину столбца.