Почему я не могу установить текст для Android TextView? - PullRequest
18 голосов
/ 18 июля 2010

У меня проблема с установкой текста в TextView:

TextView android:editable = "true".

В моем .java похоже, что это должно работать:

 text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");

Но это не такт.Может кто-нибудь сказать мне, что здесь не так?

Ответы [ 8 ]

35 голосов
/ 26 марта 2012

Код должен быть примерно таким:

TextView text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("test");
17 голосов
/ 24 октября 2011

В вашем Java-классе установите тип "EditText" на "TextView".Потому что вы объявили TextView в layout.xml файле

5 голосов
/ 06 мая 2014

Чтобы установить текст в любом из действий, чем использовать этот код ниже ... Выполните следующие действия один за другим:

1.Declare

    private TextView event_post;

2.Связать это

    event_post = (TextView) findViewById(R.id.text_post);

3.Настройка текста в

    event_post.setText(event_post_count);
4 голосов
/ 10 июня 2014

Попробуйте, как это:

TextView text=(TextView)findViewById(R.id.textviewID);
text.setText("Text");

Вместо этого:

text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");
1 голос
/ 20 марта 2015

У меня была похожая проблема, однако моя программа зависала при попытке установить текст.Я пытался установить текстовое значение из класса, который расширяет AsyncTask, и это было причиной проблемы.

Чтобы решить эту проблему, я переместил свой setText в метод onPostExecute

protected void onPostExecute(Void result) {
    super.onPostExecute(result);

    TextView text = (TextView) findViewById(R.id.errorsToday);
    text.setText("new string value");
}
1 голос
/ 23 декабря 2014

Или вы можете сделать это так:

((TextView)findViewById(R.id.this_is_the_id_of_textview)).setText("Test");
0 голосов
/ 17 февраля 2019

Вы устанавливаете текст в поле, которое было визуализировано в другом экземпляре вашей деятельности, находящемся в наличных деньгах, например, когда он был ориентирован на ландшафт. Тогда это было воссоздано по какой-то причине. Вам нужно установить текст необычным способом, сохранив строку в SharedPreferences и принудительно перезапустить действие, используя метод refreshate (), например, для mOutputText:

@Override
protected void onResume() {
    super.onResume();
    String sLcl=mPreferences.getString("response","");
    if(!sLcl.isEmpty()){
        mOutputText.setText(sLcl);
        mPreferences.edit().putString("response","").commit();
    }
}

private void changeText() {
    mPreferences.edit().putString("response",responseText).commit();
    recreate();
}
@Override
protected void onActivityResult(
        int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case CAPTURE_MEDIA_RESULT_CODE:
            if (null == data || null == data.getData()) {
               showMessage("Sorry. You didn't save any video");
            } else {
                videoUri = data.getData();
                mProgress = new ProgressDialog(this);
                mProgress.setMessage("Uploading onYoutube ...");

                authorizeIt();// SAY YOU CALL THE changeText() at the end of this method
            }
            break;
    }
}
0 голосов
/ 05 июня 2014

В вашем XML вы использовали Textview, но в Java-коде вы использовали EditText вместо TextView. Если вы измените его на TextView, вы можете установить Text в свой объект TextView.

text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");

надеюсь, что это сработает.

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