我最近在一台新机器上安装了一个新的Eclipse,安装了最新的Android SDK.当我在几个地方带来一个旧项目时,我得到了一个语法错误,关于@Override说"方法suchands这样的类型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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译器在onCreate之前接受@Override,但是使用onItemSelected给出错误.有人可以请你澄清一下发生了什么事吗?在以前的版本中,这种语法错误再次出现?
我认为你正在使用java compiler 1.5它1.6,因为@Override of interface's methods is introduced after 1.5.
在Eclipse中,
窗口 - >首选项 - > Java - >编译器 - >编译器符合级别 - >选择1.6