Я переставил свой код, который динамически создает виджеты / представления, и, хотя макет xml выглядит «правильно сформированным» (он компилируется), когда я попадаю в соответствующий «setContentView ()», происходит сбой.
IOW:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ondemandandautomatic_dynamicauthorize); <-- crashes when I F6 (Eclipse) on this line
... Итак, я заметил в своем файле макета xml значок предупреждения: «Этот TableLayout бесполезен (без детей, без фона, без идентификатора)»
Ну, я собираюсь добавить детей во время выполнения; зачем нужен фон? И большой вопрос: почему он говорит, что у него нет идентификатора, когда я добавил его:
<TableLayout>
android:id="@id/tlDynamicRows" <-- IT'S RIGHT THERE!!!
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TableLayout>
Есть еще одно предупреждение, которое гласит: «Этот TableRow или его родитель TableRow бесполезен»
Вот весь 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"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tlDynamic"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow> <- This is where it says, "This TableRow or its TableRow parent is useless"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/demand"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/time"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/space"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/contact"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
</TableLayout>
<ScrollView
android:id="@+id/scrollViewHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<TableLayout> <- This is where it says, "says, "This TableRow or its TableRow parent is useless"
android:id="@id/tlDynamicRows"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TableLayout>
</ScrollView>
</LinearLayout>
Что может быть причиной этого отвратительного развития?
Обновлен:
Просматривая мой пост, я увидел, что последний "TableLayout" в xml имеет лишнюю правую угловую скобку. Итак, я взял первый, и теперь я получаю сообщение об ошибке, а именно: «Не найдено ни одного ресурса, соответствующего данному имени (в« id »со значением« @ id / tlDynamicRows »).»
Эта часть XML теперь:
<TableLayout
android:id="@id/tlDynamicRows"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TableLayout>
Что дает?
Обновление:
Вот, наконец, 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"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tlDynamic"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/demand"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/time"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/space"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:text="@string/contact"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
</TableLayout>
<ScrollView
android:id="@+id/scrollViewHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<TableLayout
android:id="@+id/tlDynamicRows"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TableLayout>
</ScrollView>
</LinearLayout>
У меня все еще было предупреждение об изменении этой строки в TableLayout внутри ScrollView:
android:layout_height="wrap_content"
до:
android:layout_height="wrap_content"
Я так и сделал, и казалось, что это ничего не меняет - но оно избавилось от Предупреждения, поэтому я оставлю это.