Опитвам се да внедря ActionBarSherlock в моя проект. Добавянето на елементи от меню/действия към лентата за действия работи на 2.1, но не и в моя nexus4, не и в емулатор 4.0.3. Проблемът е, че функцията onCreateOptionsMenu(Menu menu)
никога не се извиква в моето устройство, но се извиква във 2.1 и следователно не се показват елементи за действие в лентата за действия в телефона ми.
- Включих ActionBarSherlock като библиотека в моя проект.
- Зададох подходяща тема в приложението във файла на манифеста.
- Разширих моя клас на дейност със SherlockActivity.
- Замених съответния клас от библиотеката на Шерлок (досега знам, че ако не беше, менюто нямаше да се показва в лентата за действие и във 2.1)
Следва част от манифеста, където е зададена тема.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
Следва файл menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_item_call"
android:showAsAction="always"
android:title="Call"/>
<item
android:id="@+id/menu_item_share"
android:showAsAction="always"
android:title="Share"/>
<item
android:id="@+id/menu_item_save"
android:showAsAction="always"
android:title="Save"/>
</menu>
Следва подходяща част от дейността.
//other imports
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.Window;
public class SelectCategories extends SherlockActivity implements
OnClickListener {
//other code
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
//return true; also has no effect
}
}
Опитвах се да разреша този проблем и минаха няколко часа, но не успях. Моля, помогни ми. Благодаря ви предварително.