繁体   English   中英

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

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

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

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;
}

}

此异常意味着您正在将xml文件中的按钮投射到类文件中的线性布局时使用。 请发布您的代码,以便我给您更好的解释。

万一您遇到错误

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

即使您尝试更改布局,问题仍然会存在。 当我得到这个答案很有帮助。 我以为我可以说其他人很容易理解。 您需要做的就是确保在主活动布局xml文件中没有要尝试两次定义的错误状态的视图ID。 就我而言,我在布局级别和视图级别都定义了按钮视图ID。 因此,删除布局中的视图ID声明可以解决此问题,并且仅在该特定视图中进行了定义-在我的情况下是按钮视图ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM