2012-07-02 83 views
2

可能重複:
Why do I get 「must override a superclass method」 with @Override?方法......必須覆蓋一個超類方法(最新SDK)

我最近安裝了一個新的Eclipse成立了一個新最新的Android SDK機。當我在幾個地方引入一箇舊項目時,我得到了一個關於@Override的語法錯誤,指出「suchandsuch類型suchandsuch必須重載超類方法」。這些項目是通過刪除@Override(我認爲是不正確的)修復的。

我剛剛用我的新安裝程序創建了我的第一個新項目,最初的未觸動代碼給出了這個讓我困惑的錯誤。

package com.geeksonhugs.whenimclose; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.NavUtils; 
import android.view.MenuItem; 

public class ItemListActivity extends FragmentActivity 
     implements ItemListFragment.Callbacks { 

    private boolean mTwoPane; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_item_list); 

     if (findViewById(R.id.item_detail_container) != null) { 
      mTwoPane = true; 
      ((ItemListFragment) getSupportFragmentManager() 
        .findFragmentById(R.id.item_list)) 
        .setActivateOnItemClick(true); 
     } 
    } 

    @Override 
    public void onItemSelected(String id) { 
     if (mTwoPane) { 
      Bundle arguments = new Bundle(); 
      arguments.putString(ItemDetailFragment.ARG_ITEM_ID, id); 
      ItemDetailFragment fragment = new ItemDetailFragment(); 
      fragment.setArguments(arguments); 
      getSupportFragmentManager().beginTransaction() 
        .replace(R.id.item_detail_container, fragment) 
        .commit(); 

     } else { 
      Intent detailIntent = new Intent(this, ItemDetailActivity.class); 
      detailIntent.putExtra(ItemDetailFragment.ARG_ITEM_ID, id); 
      startActivity(detailIntent); 
     } 
    } 
} 

編譯器在onCreate之前接受@Override,但給onItemSelected提供了錯誤。有人可以請澄清我發生了什麼事嗎?在以前的版本中,這種語法錯誤又不會發生?

+0

java版本是否一樣?我看到類似的東西從Java 5移動到Java 6. – Thomas

+0

Java版本「1.7.0_04」 –

回答

6

我認爲你正在使用java compiler 1.5,使其1.6,因爲@Override of interface's methods is introduced after 1.5.

在Eclipse中,

窗口 - >首選項 - >爪哇 - >編譯器 - >編譯器遵從性級別 - >選擇 1.6

+0

但OP說編譯器正在接受onCreate方法的'@ Override'註解。 –

+0

'擴展FragmentActivity' –

+0

從接口的方法Ovveride註釋是可用的,因爲Java 1.6 – Blackbelt

相關問題