在菜单中显示两次出现的项目,但只有一项在res / menu / xml文件中定义

时间:2015-05-24 16:47:05

标签: android android-layout android-fragments

我为MainActivity设置了一个项目列表。今天这个菜单只有一个项目。

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="fr.vincelec.sunshine.sunshine.app.ForecastFragment">

<item android:id="@+id/action_refresh"
android:title="@string/refresh"
app:showAsAction="never"/>

</menu>

此处还有启用菜单的代码:

 @Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
    inflater.inflate(R.menu.forecastfragment, menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item){
    int id = item.getItemId();
    if (id == R.id.action_refresh) {
        FetchWeatherTask weatherTask = new FetchWeatherTask();
        weatherTask.execute();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

但是当我在我的Android手机中启动该程序并点击菜单时,我看到两次该项目&#34;刷新&#34;,而不仅仅是一个项目......

我检查了MainActivity.java或main.xml中是否有东西,但没有成功,它只在我的片段文件&#34; ForecastFragment.java&#34; (之前显示的代码片段来自)我称之为R.menu.forecastfragment。

1 个答案:

答案 0 :(得分:0)

在充气之前清除菜单项。

  @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
        menu.clear();
        inflater.inflate(R.menu.forecastfragment, menu);
    }