java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.Button

时间:2015-04-04 21:23:56

标签: java android eclipse

我确实有一个简短的Android应用程序,我正在使用Eclipse ADT插件,它有两个活动。主活动有一个按钮,单击该按钮时,将调用显示我姓名的第二个屏幕。但是,我的应用程序停止运行它。我得到的错误是:

  

java.lang.RuntimeException:无法启动活动   ComponentInfo {com.example.test / com.example.test.MainActivity}:   java.lang.ClassCastException:android.widget.LinearLayout不能   强制转换为android.widget.Button

如何解决此错误?

这是我的主要活动代码:

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button batta=(Button)findViewById(R.id.btnICT3631);
    batta.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){
            //my code goes here
            startActivity(new Intent(MainActivity.this, ICT3631.class));
        }
    }); //end but1



}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

2 个答案:

答案 0 :(得分:0)

此异常意味着您在xml文件中使用按钮,同时将其转换为类文件中的线性布局。请发布您的代码,以便我为您提供更好的解释。

答案 1 :(得分:0)

如果您遇到错误

java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.Button

即使您尝试更改布局,问题仍将存在。因为我得到了这个答案有帮助。我想我可以说其他人理解它很简单。您所需要做的就是确保在您的主活动布局xml文件中,您没有视图ID,您尝试强制转换的错误状态定义了两次。在我的例子中,我在布局级别和视图级别都定义了按钮视图ID。因此,删除layot中的view id声明修复了该问题,并且只在该特定视图中定义 - 在我的例子中是按钮视图id。