我需要擴展Activity而不是ActionBarActivity或AppCompatActivity才能使用第三方庫。擴展時的工具欄活動
在所有的應用程序,我一直在使用AppCompatActivity爲了容易在裏面添加一個工具欄,但顯然如果我延長活動,我不能這樣做。我也很高興只有一個ActionBar:它不一樣,但總比沒有好。不過,我不知道該怎麼做: -/
對我有什麼建議嗎?我知道這是一個愚蠢的問題,也許,但我只是不知道如何使這項工作...
我需要擴展Activity而不是ActionBarActivity或AppCompatActivity才能使用第三方庫。擴展時的工具欄活動
在所有的應用程序,我一直在使用AppCompatActivity爲了容易在裏面添加一個工具欄,但顯然如果我延長活動,我不能這樣做。我也很高興只有一個ActionBar:它不一樣,但總比沒有好。不過,我不知道該怎麼做: -/
對我有什麼建議嗎?我知道這是一個愚蠢的問題,也許,但我只是不知道如何使這項工作...
首先檢查您所使用的庫。它可能已經過時了。
隨着新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>
AppCompatDelegate
您Activity
喜歡的東西:
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完全兼容。
Gabriele,我想我愛你:-)非常感謝你! –
'ActionBarActivity'擴展了'Activity',所以你的第三方庫應該可以使用它。你面臨什麼問題? – Nachi
我需要擴展應用程序提供的OPActivity,以便使用某些方法。 OPActivity擴展了Activity,而不是ActionBarActivity,而且我無法擴展Java中的多個類: -/ –
庫很明顯地出現在Jar中,所以我無法在更適當的「extends ActionBarActivity」中更改「extends Activity」;-) –