1

我正在开发一个具有多个活动的 Android 应用程序。为了避免在每个 Activity 中写入相同的菜单和 Intent 监听器代码,我决定创建一个文件并在每个 Activity 上实现它,如下所示:

public class MainActivity extends Activity implements CommonTools{ ...

包含我的菜单代码的 commonTools 文件如下:

import android.view.Menu;

public interface CommonTools {

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        menu.findItem(R.id.menu_home).setIntent(
            new Intent(this, MainActivity.class));
        menu.findItem(R.id.menu_articles).setIntent(
            new Intent(this, ArticlesActivity.class));
        return true;
    }
}

问题是我收到“抽象方法不指定正文”错误消息。

我没有声明任何抽象的东西,也不明白问题是什么。

4

1 回答 1

1

接口不能包含任何代码。您需要做的是扩展 Activity 然后扩展该类。例如

public class CommonTools extends Activity {

  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    menu.findItem(R.id.menu_home).setIntent(
        new Intent(this, MainActivity.class));
    menu.findItem(R.id.menu_articles).setIntent(
        new Intent(this, ArticlesActivity.class));
    return true;
  }
}

然后定义你的活动:

public class MainActivity extends CommonTools {
 ....
}
于 2013-02-10T23:23:20.130 回答