3

setText() 方法在我的应用程序中返回 null 为什么?

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() 一直返回 null?

先感谢您

解决方案:我的错误出现在 xml 文件中。我写道: android:text="@+id/txt_1" 当它应该说: android:id="@+id/txt_1"

非常感谢所有的答案和评论!

4

3 回答 3

9

您尝试将整数作为参数传递给 setText,它假定它是资源 ID。要显示计算文本,请将其作为字符串传递: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>

也许尝试清理您的项目(Eclipse 中的项目-> 清理),我最近在最后一个 ADT 版本上的 R 生成遇到了一些问题。

于 2011-03-15T21:56:26.377 回答
5

试试这个:

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

还要确保您的布局 xml 具有 TextView txt_1

于 2011-03-15T21:56:35.800 回答
2

我试过了 :

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

两者都没有工作。唯一的解决方案是:

txt.setText(""+char);

从优化的角度来看,这不是很有效,但它确实有用:)

于 2016-05-19T14:02:20.720 回答