任何时候我必须将我的项目重新导入Eclipse(如果我重新安装Eclipse,或者更改了项目的位置),几乎所有重写的方法都没有正确格式化,导致错误:
该方法必须覆盖超类方法
值得注意的是,这是Android项目 - 无论出于何种原因,方法参数值并不总是填充,所以我必须自己手动填充它们.例如:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct names
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
}
});
Run Code Online (Sandbox Code Playgroud)
最初将填充如下:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically provided
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
}
});
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我删除我的代码,并让Eclipse自动重新创建方法,它使用我已经拥有的相同参数名称,所以我真的不知道问题在哪里,除此之外它自动格式化方法我.
这需要手动重新创建所有重写的方法,这变得非常痛苦.如果有人能解释为什么会发生这种情况或如何解决它......我会非常高兴.
也许这是由于我格式化方法的方式,这是在另一个方法的参数内?
只是想知道是否有人尝试过使用Android的新Java 7语言功能?我知道Android会读取Java吐出的字节码并将其转换为dex.所以我想我的问题是它能理解Java 7的字节码吗?
我一直想知道用于Android开发的Java版本如何与Java SE版本相关.例如,我今天正在阅读有关"类型推断和通用方法"的内容,这是Java SE 7中添加的一项功能.我不知道自己,"我可以在Android代码中使用它吗?"
当然,我可以将代码输入到Android项目中并查看它是否可以编译,但我会更高兴在我脑海中进行某种映射.
我已经尝试谷歌搜索此信息,检查Android文档等,但无法找到答案.
编辑:我对语言功能更感兴趣,例如Android Java语法版本如何与Java SE语法相关.
以下代码在该public void onClick行生成此错误消息.
此行的多个标记
- 实现android.view.View.OnClickListener.onClick
- 类型new View.OnClickListener(){}的onClick(View)方法必须覆盖超类方法
我不明白为什么.这段代码来自我见过的众多例子.什么可能是错的?
private Button audioButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
audioButton = (Button) findViewById(R.id.imageButton1);
audioButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View button) {
if (button.isSelected()) {
button.setSelected(false);
}
else {
button.setSelected(true);
}
}
});
}
Run Code Online (Sandbox Code Playgroud) 由于Android目前不支持java7,我发现自己想知道如果他们正在努力支持它,他们是否已发表官方评论?
我@Override在Eclipse中有一个令人讨厌的注释问题.通常,当我在新PC上导入工作项目时,Eclipse会将某些@Override注释标记为错误.如果我删除注释一切都很好,Eclipse也表示方法覆盖了父方法,但添加覆盖注释会再次导致错误.我目前正在开发一个Android项目,所以它可能是Android的问题,而不是Eclipse.
当我尝试使用此代码启用我的应用程序的首选项时
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.Toast;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class Preferences extends PreferenceActivity {
private RadioButton btn01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
btn01 = (RadioButton)findViewById(R.id.RadioButton01);
Preference customPref = (Preference) findPreference("customPref");
customPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(),"The Custom Preference Has Been Clicked",Toast.LENGTH_LONG).show();
SharedPreferences customSharedPreference = getSharedPreferences("myCutomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("myCustomPref","The preference has been clicked");
editor.commit();
return true;
}
public …Run Code Online (Sandbox Code Playgroud) 好的,我正在尝试使ActionBarSherlock正常工作,所以我通过以下方式导入了库:
Creating New Project > Create Project From Existing Source > Choosing library from the ActionBarSherlock folder
Run Code Online (Sandbox Code Playgroud)
之后我使用相同的方法从samples文件夹导入了一个示例项目,库和示例都设置为Android 15 Build Path!
我的问题是,库中出现了100多个错误,各种关于Call的东西需要api 11级,我不知道什么是错的!
我尝试过的事情:
清理项目
设置构建路径为13,14和15
大多数错误都说:
Call requires API level 11 (current min is 8): android.app.something
Run Code Online (Sandbox Code Playgroud)
更新:我试图右键单击lib文件并单击添加到构建路径,这不起作用,这些是我得到的一些错误:
Description Resource Path Location Type
The method add(CharSequence) of type MenuWrapper must override a superclass method MenuWrapper.java /com_actionbarsherlock/src/com/actionbarsherlock/internal/view/menu line 33 Java Problem
The method add(int, int, int, CharSequence) of type MenuWrapper must override a superclass method MenuWrapper.java /com_actionbarsherlock/src/com/actionbarsherlock/internal/view/menu line 43 Java Problem …Run Code Online (Sandbox Code Playgroud) android ×8
java ×5
overriding ×3
annotations ×2
eclipse ×2
java-7 ×2
bytecode ×1
dalvik ×1
superclass ×1
version ×1