2017-02-21 3 views
0

最初に、オプションメニューの一部としてrate meボタンをコーディングしたところ、うまくいきました。アクションバーにRate meボタンを追加する問題

enter image description here

今私は、レート、私の機能にもっと注意を置くしたいと思います。そこで、RateMeメニューmain.xmlにアイコンを追加しました。しかし、私は、アプリケーションを実行すると私のボタンはまだメニューにあり、ボタンとして表示されません。

私には何が欠けていますか?

これは私のメニューmain.xmlです:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 


     <item android:id="@+id/settings" 
      android:icon="@mipmap/action_search" 
      android:title="@string/settings" 
      android:showAsAction="ifRoom|withText" 
      /> 

     <item android:id="@+id/RateMe" 
      android:icon="@mipmap/ic_action_important" 
      android:title="@string/RateMe" 
      android:showAsAction="always" 
      /> 

     <item android:id="@+id/about" 
      android:icon="@mipmap/action_search" 
      android:title="@string/about" 
      android:showAsAction="ifRoom|withText" /> 

    </menu> 

それはスタジオで正しく示しています。ここでは

enter image description here

は私mainactivityコードです:ここで

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

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); 
    menu.findItem(id.settings).setVisible(!drawerOpen); 
    menu.findItem(id.about).setVisible(!drawerOpen); 
    menu.findItem(id.RateMe).setVisible(!drawerOpen); 
    return super.onPrepareOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    Intent i; 
    if (mDrawerToggle.onOptionsItemSelected(item)) { 
     return true; 
    } 
    switch(item.getItemId()) { 
     case id.settings: 
      i = new Intent(this, Settings.class); 
      startActivity(i); 
      return true; 
     case id.about: 
      i = new Intent(this, About.class); 
      startActivity(i); 
      return true; 
     case id.RateMe: 
      i = new Intent(this, RateMe.class); 
      startActivity(i); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

は私ですメインレイアウトファイル:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:background="#111"/> 
</android.support.v4.widget.DrawerLayout> 

とmeファイル率(空):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_rate_me" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.bernard_zelmans.checksecurity.Activities.RateMe"> 

</RelativeLayout> 
+0

は他の2つのメニューと同じです – KrishnaJ

答えて

1

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:android="http://schemas.android.com/apk/res/android"の下を追加し、同じよう app:showAsAction=

を持つすべてのandroid:showAsAction=を置き換える:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 


    <item android:id="@+id/settings" 
     android:icon="@mipmap/action_search" 
     android:title="@string/settings" 
     app:showAsAction="ifRoom|withText" 
     /> 

    <item android:id="@+id/RateMe" 
     android:icon="@mipmap/ic_action_important" 
     android:title="@string/RateMe" 
     app:showAsAction="always" 
     /> 

    <item android:id="@+id/about" 
     android:icon="@mipmap/action_search" 
     android:title="@string/about" 
     app:showAsAction="ifRoom|withText" /> 

</menu> 

これが役立つことを願っています。

+0

これは機能します。ありがとう! – narb

+0

ようこそ。 –

0

これが役立つかどうかはわかりません。あなたの商品にapp:showAsAction="always|collapseActionView"を追加してみてください。

<item android:id="@+id/RateMe" 
     android:icon="@mipmap/ic_action_important" 
     android:title="@string/RateMe" 
     app:showAsAction="always|collapseActionView" /> 
関連する問題