Изменение текста при нажатии кнопки android studio

#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>
  

вот насколько велико мое текстовое поле, «sports» — это идентификатор для TextView, который равен «abc»

Комментарии:

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. Я добавил еще одну картинку, чтобы показать, как выглядит текстовое поле, может быть, вы видите, неправильно это или нет