在正确的位置分配菜单图标

时间:2014-07-21 22:41:21

标签: java android xml

我正在写一个android程序。我要做的第一件事是顶部的菜单图标。这是我的代码: menu.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/add"
          android:icon="@drawable/plus"
          android:title="Adding"
          android:orderInCategory="100"
          android:showAsAction="always"
     />
</menu>

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >

</LinearLayout>

和myActivity.java

package com.example.myapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public boolean onCreateMenu(Menu menu){
        MenuInflater inflater = getMenuInflater();
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.add:
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}

问题是图标位于中间,但我想把它放在右上方,我不知道如何......

我也见过android:actionlayout和android:action-layout ...这些之间的差异是什么?!

如果有人能回答我的问题,我会很高兴:)

2 个答案:

答案 0 :(得分:1)

要覆盖的正确方法是onCreateOptionsMenu(Menu menu)。您在此方法中膨胀菜单并返回true。它应显示在操作栏的右侧。

答案 1 :(得分:1)

尝试使用:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.firstactivity_menu, menu);

        return true;
    }

R.menu.firstactivity_menu应该是你的菜单xml!