2015-08-22 2 views
0

Я хочу включить меню в свою деятельность, теперь у него есть только один элемент справки со значком и текстом, для showAsAction установлено значение ifRoom, но оно всегда отображается в переполнение действия. Почему я не получаю выигрыш?Android - Элементы меню, которые не отображаются так, как они должны

Вот XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.mycompany.myapp.Mymainclass" > 

    <item 
     android:id="@+id/help" 
     android:orderInCategory="100" 
     android:title="@string/help" 
     android:icon="@drawable/ic_help" 
     app:showAsAction="ifRoom"/> 

</menu> 

MainActivity:

import android.content.Context; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.util.Base64; 
import android.view.Menu; 


public class MainActivity extends FragmentActivity { 

    SharedPreferences prefs; 
    Menu menu; 

    @Override 
    public void onCreate(Bundle save){ 
     super.onCreate(save); 
     setContentView(R.layout.pokemons_layout); 
     prefs = getSharedPreferences("PREFERENCES", Context.MODE_PRIVATE); 
     if (findViewById(R.id.fragment_container) != null) { 
      if (save != null) { 
       return; 
      } 
      CustomListFragment listFragment = new CustomListFragment(); 
      listFragment.setArguments(getIntent().getExtras()); 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.fragment_container, listFragment).commit(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     this.menu = menu; 
     getMenuInflater().inflate(R.menu.menu, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public void onPause(){ 
     super.onPause(); 
     String bytearray = Base64.encodeToString(DB.bytearray, Base64.DEFAULT); 
     prefs.edit().putString("BYTEARRAY", bytearray).apply(); 
    } 
    @Override 
    public void onResume(){ 
     super.onResume(); 
     String bytearray = prefs.getString("BYTEARRAY", Base64.encodeToString(DB.bytearray, Base64.DEFAULT)); 
     DB.bytearray = Base64.decode(bytearray, Base64.DEFAULT); 
    } 
} 
+0

изменения его "всегда" – Prakhar

+0

также удалите orderInCategory item – Prakhar

+0

, тогда он будет работать с ifroom – Prakhar

ответ

1

попробовать это, потому что не все приложения используют AppCompat поддержку Lib

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item android:id="@+id/menu_add_size" 
    android:title="@string/menu_add_item" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:icon="@android:drawable/ic_menu_add" /> 
</menu> 
+0

Я хочу, чтобы значок появлялся в панели действий. С этим у меня есть строка в переполнении действия –

+0

вы можете показать свою основную деятельность, я не вижу проблемы в вашем макете xml –

+0

попробуйте удалить xmlns: app = "http://schemas.android.com/apk/res-auto" line и изменить это приложение: showAsAction = "ifRoom" для android: showAsAction = "ifRoom" –

Смежные вопросы