我正在尝试将操作图标添加到我的工具栏,但是徒劳无功。我已经遵循了thread的所有建议。
可能问题是我的活动没有直接扩展ActionBarActivity
,因为它已经扩展ListActivity
,如下所示:
public class ShopsCatalogueActivity extends ListActivity {
private Toolbar toolbar; // Declaring the Toolbar Object
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//using delegates because this activity already extends ListActivity and we want to add toolbar
AppCompatCallback callback = new AppCompatCallback() {
@Override
public void onSupportActionModeStarted(ActionMode actionMode) {
}
@Override
public void onSupportActionModeFinished(ActionMode actionMode) {
}
@Nullable
@Override
public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) {
return null;
}
};
AppCompatDelegate delegate = AppCompatDelegate.create(this, callback);
delegate.onCreate(savedInstanceState);
//get the layout
delegate.setContentView(R.layout.activity_shops_catalogue);
//adding toolbar following material design approach
toolbar= (Toolbar) findViewById(R.id.tool_bar); // Attaching the layout to the toolbar object
delegate.setSupportActionBar(toolbar);
...
}
这是我的menu.xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:MyOwnAppNameSpace="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
MyOwnAppNameSpace:showAsAction="never" />
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search"
android:orderInCategory="200"
android:title="Search"
MyOwnAppNameSpace:showAsAction="always"></item>
<item
android:id="@+id/action_user"
android:icon="@drawable/ic_user"
android:orderInCategory="300"
android:title="User"
MyOwnAppNameSpace:showAsAction="ifRoom"></item>
</menu>
在活动中:
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.shops_catalogue_toolbar_menu, menu);
return true;
}
在build.gradle中我使用:
compile 'com.android.support:appcompat-v7:22.2.0'
答案 0 :(得分:0)
您可以使用的一种方法是使用FragmentActivity作为基本活动,然后将其加载到ListFragment中。在列表片段中,您只需在onCreate方法中添加以下行:
getActivity().getActionBar().setIcon(R.drawable.ic_main);
然而,Budius是对的,你应该使用RecyclerView,它是一个新的android类,简化了旧的viewholder模式。 Android List and Card Guide, RecyclerView Android Doc