textView.setText (); сбой - PullRequest
       14

textView.setText (); сбой

3 голосов
/ 16 марта 2011

Метод setText () возвращает ноль в моем приложении, почему?

public class GetValue extends Activity {
    char letter = 'g';
    int ascii = letter;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView textView = (TextView)findViewById(R.id.txt_1);
            textView.setText(ascii);
    }
}

Неважно, какой текст я вставил, он все равно вылетает.Почему setText () продолжает возвращать ноль?

Заранее спасибо

Решение: Моя ошибка была в файле xml.Я написал: android: text = "@ + id / txt_1" Когда следует сказать: android: id = "@ + id / txt_1"

Большое спасибо за все ответы и комментарии!

Ответы [ 3 ]

8 голосов
/ 16 марта 2011

Вы попытались передать целое число в качестве параметра в setText, который предполагает, что это идентификатор ресурса.Чтобы отобразить вычисленный текст, передайте его в виде строки: textView.setText("g");

Отредактировано: проверьте ваш XML-файл, у меня есть кое-что очень простое тестирование, и оно работает

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/txt_1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="myTextView"/>
</LinearLayout>

Возможно, попытайтесь очиститьваш проект (Project-> Clean в Eclipse), у меня недавно возникли проблемы с генерацией R в последней версии ADT.

5 голосов
/ 16 марта 2011

Попробуйте это:

textView.setText(Integer.toString(ascii)); 

Также убедитесь, что ваш макет XML имеет TextView txt_1

2 голосов
/ 19 мая 2016

Я пробовал:

Integer.toString(char) and String.valueOf(char)

оба не работали. Единственное решение:

txt.setText(""+char);

Это не очень эффективно с точки зрения оптимизации, но делает свое дело :)

...