簡體   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