如何在Activity中设置工具栏而不扩展AppCompatActivity?

时间:2016-03-18 13:22:02

标签: android android-actionbar android-toolbar

我创建了一个扩展ListActivity的活动,我想将Toolbar设置为我的活动,这需要扩展AppCompatActivity。有没有像像这样导入AppCompatActivity的片段

((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);

3 个答案:

答案 0 :(得分:2)

在AppCompatActivity中的onCreate中使用ListView。您不能将工具栏与ListActivity一起使用。

在你的onCreate

listView = (ListView) findViewById(R.id.list_view); 

mListItems = new LinkedList<String>();
mListItems.addAll(Arrays.asList(mStrings));

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, mListItems);

答案 1 :(得分:2)

ListeActivity扩展了Activity,因此您无法转换为AppCompatActivity。

两种替代方法是使用ListFragment代替并将其放入AppCompatActivity中。或者定义自己的ListAppCompatActivity类,其中包含一个ID为android:id/list

的ListView的布局

答案 2 :(得分:0)

ListActivity中有一个默认ListView,可以通过getListView()方法引用。

通过扩展ToolBar,您在Android中只能拥有AppCompatActivityActionBarActivity的版本为ActionBar,自版本22.1.0起已弃用。

所以我坚持要你AppCompatActivityToolBar amd一起设置listview amd,你可以if (!_dataSyncClient.SyncContext.IsInitialized) { _store = new MobileServiceSQLiteStore(AppConstants.SqliteDatabaseFile); _store.DefineTable<Language>(); var syncCtx = _dataSyncClient.SyncContext; await syncCtx.InitializeAsync(_store); }