[英]Android : Icons not showing in actionbar
我正在嘗試在操作欄中顯示兩個圖標,其中一個是帶有幾個孩子的菜單。 但是,我不能。 我在SO中測試了其他類似問題的一些答案,但無濟於事。 甚至沒有一個圖標出現。 這是代碼。 謝謝你的幫助。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.semantic.semanticOrganizer.sem.activities.HomeActivity" >
<item android:id="@+id/viewTags"
android:icon="@drawable/ic_action_labels"
app:showAsAction="always"
android:title="Tags"
/>
<item
android:id="@+id/a_More"
android:icon="@drawable/ic_more_vert_white_36dp"
app:showAsAction="always"
android:title="More">
<menu>
<item android:id="@+id/action_view_notes"
android:title="Notes"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/action_view_habits"
android:title="Habits"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/action_view_checklists"
android:title="Checklists"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/action_view_tags"
android:title="Tags"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
</item>
</menu>
Java代碼
public class HomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
stuffWhichDoesNotInvolveGettingActionBar();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
if (id == R.id.action_view_tags) {
return true;
}
if (id == R.id.action_view_notes) {
return true;
}
if (id == R.id.action_view_checklists) {
return true;
}
if (id == R.id.action_view_habits) {
return true;
}
return super.onOptionsItemSelected(item);
}
private void stuffWhichDoesNotInvolveGettingActionBar(){
//Code
}
編輯:正如Neutrino所建議的,我試圖轉向appCompat主題。 但是,此錯誤出現在Win64計算機上。 屬性“ actionModeShareDrawable”的資源未找到錯誤。 我將compileSdkVersion更改為21並完成了工作。 因此,我現在可能不得不在沒有AppCompat的情況下進行操作。 我目前正在使用Holo。 因此,請提出針對Holo主題的修復程序。
編輯我找到了解決方法,通過使用支持庫的v20而不是v21解決了我提到的錯誤,因為我發現Gradle 2.3生成系統尚未在Android中解決,並且該錯誤僅在該版本中得到了解決(一個錯誤已修復的Jar Groovy 2.3.5版已發布)。 然后,我可以使用ActionBarActivity,現在可以看到操作欄圖標了。 謝謝大家,尤其是誇克。
擴展ActionBarActivity
而不是Activity
,即make
public class HomeActivity extends Activity
如
public class HomeActivity extends ActionBarActivity
現在不建議使用ActionBarActivity
來支持工具欄。 要使用工具欄,請使用-
public class HomeActivity extends AppCompatActivity
確保在build.gradle (Module: app)
包含最新版本的支持庫build.gradle (Module: app)
-
dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
}
我嘗試編譯您的代碼,以下代碼對我有用。 將要顯示圖標的所有菜單項替換為android:showAsAction
app:showAsAction
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.