android setonclicklistener覆盖错误

时间:2016-10-06 20:19:19

标签: java android

我所有的错误主要发生在setonclicklistener的buttonEntry,buttonMail和buttonSettings声明中。错误是:

  • 错误:(26,63)错误:找不到符号类AddEntry
  • 错误:(23,65)错误:不是抽象的,并且不会覆盖OnClickListener上的抽象方法onClick(View)
  • 错误:(29,22)错误:不兼容类型:意外返回值
  • 错误:(24,11)错误:方法不会覆盖或实现超类型的方法

任何人都可以帮助解决这个问题吗?我还是个初学者,我不知道它为什么会抛出这么多错误。另外,如果我尝试在我的main_menu.xml上安装android:onClick =" MethodName",当我在模拟器上打开它时,我的应用程序会停止响应,而不会在构建时出现任何错误。

    Button buttonEntry;
    Button buttonMail;
    Button buttonSettings;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttonEntry = (Button)findViewById(R.id.action_add_entry);
      buttonEntry.setOnClickListener(new View.OnClickListener() {
          @Override
          public void OnClick(View v) {
                 Intent entry = new Intent(MainActivity.this, AddEntry.class);
                 startActivity(entry);
              setContentView(R.layout.newentry);
              return true;
          }
      });
        buttonMail = (Button)findViewById(R.id.action_add_email);
        buttonMail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void OnClick(View v) {
                   Intent mail = new Intent(MainActivity.this, AddMail.class);
                   startActivity(mail);
                setContentView(R.layout.newmail);
                return true;
            }
        });
        buttonSettings = (Button)findViewById(R.id.action_settings);
        buttonSettings.setOnClickListener(new View.OnClickListener() {
            @Override
            public void OnClick(View v) {
                   Intent settings = new Intent(MainActivity.this, AppSettings.class);
                    startActivity(settings);
                setContentView(R.layout.settings);
                return true;
            }
        });
    }

Activity_Manifest,这是我添加的3个活动。他们的名字是红色的。

<activity android:name=".AddEntry"></activity>
    <activity android:name=".AddMail"></activity>
    <activity android:name=".AppSettings"></activity>

2 个答案:

答案 0 :(得分:0)

试试这个:

Button buttonEntry;
Button buttonMail;
Button buttonSettings;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buttonEntry = (Button)findViewById(R.id.action_add_entry);
  buttonEntry.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
             Intent entry = new Intent(MainActivity.this, AddEntry.class);
             startActivity(entry);
          setContentView(R.layout.newentry);
      }
  });
    buttonMail = (Button)findViewById(R.id.action_add_email);
    buttonMail.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               Intent mail = new Intent(MainActivity.this, AddMail.class);
               startActivity(mail);
            setContentView(R.layout.newmail);

        }
    });
    buttonSettings = (Button)findViewById(R.id.action_settings);
    buttonSettings.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               Intent settings = new Intent(MainActivity.this, AppSettings.class);
                startActivity(settings);
            setContentView(R.layout.settings);
        }
    });
}

错误:(26,63)错误:找不到符号类AddEntry 如果AddEntry位于另一个.java中,则需要在文件顶部导入,如下所示:

import your.package.name.AddEntry;

答案 1 :(得分:0)

请检查您的活动布局文件activity_main.xml的内容。 它需要将Button个元素的id属性设置为相应的值。
例如,在您的情况下,下一行代码可以正常工作

 buttonEntry = (Button)findViewById(R.id.action_add_entry);

您需要添加activity_main.xml按钮元素,看起来像这样

...
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Add"
    android:id="@+id/action_add_entry" />
...

记下android:id属性。