0

我需要擴展Activity而不是ActionBarActivity或AppCompatActivity才能使用第三方庫。擴展時的工具欄活動

在所有的應用程序,我一直在使用AppCompatActivity爲了容易在裏面添加一個工具欄,但顯然如果我延長活動,我不能這樣做。我也很高興只有一個ActionBar:它不一樣,但總比沒有好。不過,我不知道該怎麼做: -/

對我有什麼建議嗎?我知道這是一個愚蠢的問題,也許,但我只是不知道如何使這項工作...

+0

'ActionBarActivity'擴展了'Activity',所以你的第三方庫應該可以使用它。你面臨什麼問題? – Nachi

+0

我需要擴展應用程序提供的OPActivity,以便使用某些方法。 OPActivity擴展了Activity,而不是ActionBarActivity,而且我無法擴展Java中的多個類: -/ –

+0

庫很明顯地出現在Jar中,所以我無法在更適當的「extends ActionBarActivity」中更改「extends Activity」;-) –

回答

5

首先檢查您所使用的庫。它可能已經過時了。

隨着新22.1+程序兼容性可以使用AppCompatDelegate到程序兼容性的支持擴展到任何活動。

您可以檢查這個官方鏈接AppCompatPreferenceActivity,在那裏你可以找到這種技術的一個例子。

您有:

  • Toolbar添加到您的Activity

事情是這樣的:

<android.support.v7.widget.Toolbar 
    android:id="@+id/mytoolbar" 
    android:background="?attr/colorPrimary"/> 
  • 使用AppCompat Theme沒有動作條。

是這樣的:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="colorPrimary">@color/myColor</item> 
     .... 
    </style> 
  • 添加AppCompatDelegateActivity

喜歡的東西:

public class MainActivity extends Activity implements AppCompatCallback { 

     private AppCompatDelegate delegate; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      //create the delegate   
      delegate = AppCompatDelegate.create(this, this); 

      //call the onCreate() of the AppCompatDelegate 
      delegate.onCreate(savedInstanceState); 

      //use the delegate to inflate the layout 
      delegate.setContentView(R.layout.activity_main); 

      //add the Toolbar 
      Toolbar toolbar= (Toolbar) findViewById(R.id.mytoolbar); 
      delegate.setSupportActionBar(toolbar); 
     } 

    //..... 
} 

檢查正式例如包裹Y的其他方法我們的Activity與AppCompatActivity完全兼容。

+0

Gabriele,我想我愛你:-)非常感謝你! –