#android #android-layout #android-activity #onclick #android-button
#Android #android-макет #android-активность #onclick #android-кнопка
Вопрос:
Я пробовал использовать руководство на YouTube, но оно не работает, когда я нажимаю кнопку, ничего не происходит. Когда я нажимаю кнопку, я хочу изменить действие макета, а также установить в новом макете один случайный текст, скажем, из других 10, и в этом текущем макете я хочу иметь кнопку, которая случайным образом изменит первый текст на другой. Вот какие коды я использовал, но они не сработали.
@Я не могу добавить коды, потому что это не позволяет мне опубликовать их here..it написано что-то вроде недопустимо, но вы видите все на картинке, поэтому я написал весь этот код, и когда я нажимаю на свою кнопку, он ничего не делает, в чем может быть проблема? и если у вас есть какая-либо идея или вы знаете какой-либо учебник, который поможет мне достичь того, что, как я сказал, я хочу сделать, я был бы очень признателен
@как вы можете видеть, есть строковый параметр, который должен выдавать мне один текст из всех, когда я нажимаю свою кнопку, но это не так
извините за изображение, но, похоже, эти коды не очень хороши
<LinearLayout
android:layout_width="332dp"
android:layout_height="184dp"
android:layout_marginStart="36dp"
android:layout_marginLeft="36dp"
android:layout_marginTop="48dp"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@ id/buttonsports"
android:layout_width="match_parent"
android:layout_height="129dp"
android:background="@drawable/ft"
tools:layout_editor_absoluteX="115dp"
tools:layout_editor_absoluteY="291dp" />
<TextView
android:id="@ id/sports"
android:layout_width="216dp"
android:layout_height="117dp"
android:text="TextView"
tools:layout_editor_absoluteX="95dp"
tools:layout_editor_absoluteY="246dp" />
</LinearLayout>
Комментарии:
1. пожалуйста, отредактируйте свой вопрос и добавьте свой код «Не его изображение» с более подробной информацией, чтобы вам было легче помочь
2. так ли это лучше?..
3. Я только что увидел, что «TextView» запрашивает строку, но этот парень ничего не сделал в своем видео .. может ли это быть решением?
4. дайте мне ссылку на учебник, я посмотрю, в чем разница между ним и вашим кодом
5. Укажите
LinearLayout's
высоту и ширинуwrap_content
и проверьте, сохраняется ли эта проблема.
Ответ №1:
В вашем XML-файле есть LinearLayout
, для которого вы установили высоту в:
android:layout_height="184dp"
а внутри есть Button
с высотой:
android:layout_height="129dp"
Итак, для TextView
приведенного ниже значения осталось максимальным 55dp
, но вы устанавливаете:
android:layout_height="117dp"
Это означает, что по крайней мере половина TextView
не видна.
В вашем коде вы устанавливаете случайный текст на TextView
при нажатии на Button
.
Вы говорите, что ничего не происходит.
Есть ли случай, когда текст устанавливается, но вы не можете его видеть, потому что TextView
в основном скрыт?
Измените высоту представлений, и вы узнаете.
Комментарии:
1. Похоже, что в тексте достаточно места, но теперь я увидел, что кнопка вообще не работает, как будто у меня есть еще 1 кнопка с командой OnClickListener, и у нее есть 2 состояния сфокусированное и нормальное, поэтому это, которое должно генерировать мне случайный текст, не меняется, интересно, из-за отсутствия кода OnClickListener
2. Похоже, что в тексте достаточно места где? В предварительном просмотре дизайна? Это не имеет ничего общего с реальной вещью. У вас не будет еще 1 кнопки, если вы используете макет, который вы опубликовали. Задайте текст TextView в формате xml, подобном
android:text="abc"
и запустите приложение. Вы видите текст?3. нет, но даже с abc он по-прежнему сообщает мне «жестко закодированная строка «abc», следует использовать @string » разве это не решение? Я хочу сказать, что моя кнопка — ошибка, но у нее не было проблем при использовании «OnClickListener» для изменения макета, но для изменения текста не работает
4. * «жестко закодированная строка «abc», … * — это просто предупреждение, а не ошибка. Вы не меняете макеты с помощью опубликованного вами кода. Вы устанавливаете текст в TextView, и если вы не видите даже «abc», это потому, что TextView находится так далеко внизу. Измените высоту.
5. Я добавил еще одну картинку, чтобы показать, как выглядит текстовое поле, может быть, вы видите, неправильно это или нет