2016-02-26 98 views
-1

爲什麼我不能使用activateToolbar()方法?找不到符號方法activateToolbar()

我有一個名爲BaseActivity

public class BaseActivity extends AppCompatActivity { 
private Toolbar mToolbar; 
protected Toolbar activateToolbar() { 
    if(mToolbar == null) { 
     mToolbar = (Toolbar) 
       findViewById(R.id.app_bar); 
     if(mToolbar != null) { 
      setSupportActionBar(mToolbar); 
     } 
    } 
    return mToolbar; 
} 
} 

在MainActivity的onCreate方法類,我試圖調用activateToobar()方法

public class MainActivity extends AppCompatActivity { 

private static final String LOG_TAG = "MainActivity"; 
private List<Photo> mPhotosList = new ArrayList<Photo>(); 
private RecyclerView mRecyclerView; 
private FlickrRecyclerViewAdapter flickrRecyclerViewAdapter; 

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

    activateToolbar(); 

Android的工作室IDE 1.5.1,我使用節目activateToolbar()方法以紅色字母表示;它說'我無法解決方法activateToobar()',當我把它懸停。當我嘗試創建項目時,出現錯誤提示「找不到符號方法activateToolbar()」。

+1

不'MainActivity'延長'BaseActivity'? '''public class MainActivity extends BaseActvity' –

+0

這聽起來像你在'BaseActivity'中定義'activateToolbar',並且在MainActivity中使用它(不相關的類)。那是對的嗎? – resueman

+0

@George MainActivity MainActivity extends AppCompatActivity resueman是的,activateToolbar()在BaseActivity中定義,我試圖在MainActivity中使用 –

回答

1

看看您對MainActivity的定義,它需要擴展BaseActivity,其中activateToolbar()已定義。

現在您MainActivity擴展AppCompatActivityBaseActivity未使用

+0

我改變了MainActivity來擴展BaseActivity,它的工作原理。 MainActivity是否也擴展了AppCompatActivity,因爲BaseActivity擴展了AppCompatActivity?換句話說,這種改變會以任何方式限制MainActivity的功能嗎? –

+0

是的,您可以創建一個創建類層次結構的類鏈,並且每個類都從父類繼承行爲。所以MainActivity既是一個BaseActivity也是一個AppCompatActivity – Chris

+0

PSA:沒有評論的downvotes是沒有用的 – Chris