textView.setText();崩溃

时间:2011-03-15 21:50:28

标签: android debugging null return settext

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文件中。我写: 机器人:文字= “@ + ID / txt_1” 什么时候应该说: 机器人:ID = “@ + ID / txt_1”

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

3 个答案:

答案 0 :(得分:8)

您尝试将整数作为参数传递给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>

也许尝试清理你的项目(Project-&gt;在Eclipse中清理),我最近在最后一个ADT版本上遇到了R代的问题。

答案 1 :(得分:5)

试试这个:

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

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

答案 2 :(得分:2)

我试过了:

Integer.toString(char) and String.valueOf(char)
两个都没有用。 唯一的解决方案是:

txt.setText(""+char);

从优化的角度来看,这不是很有效,但它可以解决问题:)