1

複数のアクティビティを持つ Android アプリを開発しています。同じメニューとインテント リスナー コードを各アクティビティに書き込むことを避けるために、1 つのファイルを作成し、次のようにすべてのアクティビティに実装することにしました。

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

インターフェイスにコードを含めることはできません。あなたがする必要があるのは、アクティビティを拡張してからそのクラスを拡張することです。例えば

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 に答える