2015-04-04 71 views
1

我確實使用了一個簡短的Android應用程序,使用Eclipse ADT插件進行構建,該插件有兩個活動。主要活動有一個按鈕,點擊後會調用顯示我的名字的第二個屏幕。但是,我的應用程序停止運行它。我得到的錯誤是:java.lang.ClassCastException:android.widget.LinearLayout不能轉換爲android.widget.Button

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

} 
+0

請發佈您的代碼 – 2015-04-04 21:25:11

+0

在您的代碼中使用findViewById()時,您可能在您的XML佈局中有一個'LinearLayout',您正在投射到'Button'。仔細檢查視圖ID是否正確。但是,無論如何,你應該顯示你的「活動」代碼。 – joao2fast4u 2015-04-04 21:31:54

+0

我發佈了我的主要活動代碼球員。 – 2015-04-04 22:05:27

回答

0

此異常意味着你使用的是在XML文件按鈕,同時它鑄造在類文件的線性佈局。請發佈你的代碼,以便我可以給你一個更好的解釋。

+0

您的類文件代碼完全正常,請嘗試更改xml文件中的按鈕id以及類文件。這可能會幫助你。 – Aakash 2015-04-04 22:15:19

+0

不能相信它現在工作。所以我在LinearLayout和Button視圖中都定義了兩次按鈕。刪除LinearLayout中的按鈕id,並僅在Button視圖中定義它。固定問題謝謝。 – 2015-04-04 22:34:48

0

如果您遇到錯誤

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

即使你試圖改變佈局的問題將依然存在。因爲我有這個答案有幫助。我想我可以說其他人很容易理解。所有你需要做的就是確保在你的主要活動佈局xml文件中,你沒有視圖id,你試圖轉換的錯誤狀態定義了兩次。在我的情況下,我有在佈局級別和視圖級別定義的按鈕視圖ID。因此刪除layot中的視圖id聲明可以解決問題,並且只能在特定的視圖中定義 - 在我的情況下是按鈕視圖ID。

相關問題