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,我想我爱你:-)非常感谢你! –