android程序在Activity类中崩溃

时间:2013-12-27 16:03:20

标签: android

当流程到达那里时,代码崩溃。为什么?提前谢谢。


protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //erroneous code block starts

    Button returnButton = (Button)findViewById(R.id.imgReturn);


    returnButton.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View arg0) {
            finish();

        }

    });
    //erroneous code block ends

    setContentView(R.layout.activity_travel);

}

以下是* activity_travel *中标识的 imgReturn 的定义:

<ImageView
    android:id="@+id/imgReturn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/ic_menu_revert"
    android:contentDescription="@string/button_name_return"
     />

3 个答案:

答案 0 :(得分:1)

Button returnButton = (Button)findViewById(R.id.imgReturn);

xml布局中有ImageView而非Button

应该是

ImageView iv = (ImageView) findViewById(R.id.imgReturn);

初始化应该在

之后
setContentView(R.layout.activity_travel);

作为

@Override 
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_travel);
// initialization after setContentView
ImageView returnButton = (ImageView)findViewById(R.id.imgReturn);

findViewById在当前膨胀的布局中查找id为id的视图。首先,您需要使用setContentView(R.layout.activity_travel)将布局设置为活动。然后初始化视图。你所拥有的是xml中的ImageView,但你在初始化时将它投射到Button。

答案 1 :(得分:0)

使用以下代码:

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    //erroneous code block starts
    setContentView(R.layout.activity_travel);
    ImageView returnButton = (ImageView)findViewById(R.id.imgReturn);


    returnButton.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View arg0) {
            finish();

        }

    });
    //erroneous code block ends



}

首先:你没有按钮

第二:setContentView必须低于super.onCrete()

答案 2 :(得分:0)

你需要在“super.onCreate”之后放置“setContentView”。 设置内容视图将设置膨胀您的类的xml文件。您无法使用UI设置您将使用的xml文件。