Android Studio всегда выводит текст «Привет из C ++» - PullRequest
0 голосов
/ 17 октября 2018

Я сталкиваюсь с этой странной проблемой, я создал textview в activity_main.xml и установил текст как: android:text="Oh my god" Но независимо от того, какой текст я поместил, вывод на экране приложения будет:

Привет из C ++

Фактически, положение текста изменяется в соответствии с моими настройками, но текст всегда остается, к сожалению, неизменным.Я попытался удалить и снова добавить textview, но без изменений.enter image description here enter image description here

MainActivity.java:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    // Example of a call to a native method
    TextView tv = (TextView) findViewById(R.id.sample_text);
    tv.setText(stringFromJNI());
    }

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/sample_text"
        android:layout_width="147dp"
        android:layout_height="76dp"
        android:layout_marginStart="248dp"
        android:layout_marginTop="16dp"
        android:text="Oh my god"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

PS: У какого-то парня такая же проблема , но на него еще не ответили.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Вот ваша проблема:

tv.setText(stringFromJNI());

Это устанавливает текст на то, что stringFromJNI() возвращает, заменяя то, что вы определяете в XML.

Если вы хотите изменить текст, которыйлибо измените собственный метод, чтобы он возвращал то, что вам нужно, удалите программную настройку или измените текст, установленный в вашем коде.

0 голосов
/ 17 октября 2018

Звучит так, как будто текст изменяется программно включенной библиотекой C ++.Изменения XML похожи на исходное состояние представления (устанавливается при раздувании представления или при вызове setContentView), а также любые изменения, вносимые в него программно с помощью переопределения.

Если вы закомментируете строку

tv.setText(stringFromJNI());

Вы увидите, что ваши изменения XML останутся, а текстовое представление покажет вашу текстовую строку XML вместо этого (потому что это будетбольше не устанавливается после первоначального создания представления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...