我为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。
答案 0 :(得分:0)
在充气之前清除菜单项。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
menu.clear();
inflater.inflate(R.menu.forecastfragment, menu);
}