2017-04-05 75 views
0

我想在Android應用程序的動作欄上添加2或3個圖標。我已經採取了空的活動,並添加了工具欄。我還在左側設置了圖標。現在我想添加另外兩個圖標。但是我的項目目錄結構中沒有Menu文件夾。因此,任何人都可以告訴我如何通過適當的指導來做到這一點? 我的代碼是在這裏:如何在android中的操作欄上添加多個圖標?

我的活動文件

public class ActionBarActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_action_bar); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setIcon(R.drawable.left_nav); 
     getSupportActionBar().setTitle(""); 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
} 

我的.xml文件,我的項目目錄結構

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff" 
    android:fitsSystemWindows="true" 
    tools:context="firstapp.vaibhav.com.firstapp.ActionBarActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

</android.support.design.widget.CoordinatorLayout> 

屏幕截圖

回答

1

像這樣的項目創建menu.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <!-- <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" />--> 
    <item 
     android:id="@+id/action_refresh" 
     android:orderInCategory="100" 
     app:showAsAction="always" 
     android:icon="@drawable/ic_action_autorenew" 
     android:title="Search"/> 
    <item 
     android:id="@+id/action_search" 
     android:orderInCategory="100" 
     app:showAsAction="always" 
     android:icon="@drawable/ic_action_search" 
     android:title="Search"/> 

</menu> 

,並用它在活動

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     // MenuInflater inflater1 = getActivity().getMenuInflater(); 
     inflater.inflate(R.menu.cartmenu, menu); 
     return ; 
    } 
0

在RES /菜單/ menu_main.xml:

在你的活動添加

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item android:id="@+id/icon_id" 
     android:visible="true" 
     android:title="@string/icon_name" 
     android:icon="@drawable/your_image" 
     app:showAsAction="always"> 
    </item> 
</menu> 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu_main, menu); 
    // return true so that the menu pop up is opened 
    return true; 
} 

要訪問您的在activity中添加菜單項:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.your_item_id) { 
     // your code 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
6

1.在您現有的資源文件夾res中創建一個menu文件夾。 (實施例.../res/menu

2.menu文件夾中創建一個main.xml文件。 (例.../res/menu/main.xml

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_item_one" 
     android:title="Camera" 
     android:icon="@drawable/ic_menu_camera" 
     app:showAsAction="always" /> 

    <item 
     android:id="@+id/action_item_two" 
     android:title="Send" 
     android:icon="@drawable/ic_menu_send" 
     app:showAsAction="always" /> 
</menu> 

在您的活動,覆蓋onCreateOptionsMenu()onOptionsItemSelected()與選項菜單的工作。

ActionBarActivity.java

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@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(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_camera) { 

     // Do something 
     return true; 
    } 
    if (id == R.id.action_send) { 

     // Do something 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

輸出

enter image description here

希望這將有助於〜

+0

@sid如果我的回答可以幫助你,那麼請標記爲接受的答案。提前致謝。 – FAT

相關問題