2013-02-10 13 views
1

我正在開發一個包含多個活動的Android應用程序。爲了避免寫相同的菜單和意向聽衆代碼到每一個活動,我決定創建一個文件並執行它在每一個活動像下面這樣:它包含我的菜單代碼如下Android菜單文件

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; 
    } 
} 

問題是我得到一個「抽象方法不指定正文」的錯誤消息。

我還沒有宣佈任何抽象的,不明白是什麼問題。

回答

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 { 
.... 
} 
+0

謝謝。你的回答的修正幫助了我很多 – sisko 2013-02-12 18:52:47