我如何将微调器添加到特定的工具栏 fragment.Can 谁能告诉我该怎么做?
How can i add spinner to the toolbar in the particular fragment.Can anyone tell me how can i do this?
这是我的 onActivityCreated()
方法:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onActivityCreated(savedInstanceState);
}
这是我给微调器充气并设置适配器时的 onCreateOptionsMenu()
方法:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem menuItem = menu.findItem(R.id.menu_spinner);
mCountrySpinner = (Spinner) MenuItemCompat.getActionView(menuItem);
ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, mCountryList);
countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mCountrySpinner.setAdapter(countryAdapter);
super.onCreateOptionsMenu(menu, inflater);
}
这是我的菜单 xml,我在其中添加了项目并将 app:actionViewClass
设置为 android.widget.Spinner
:
<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=".activity.MainActivity">
这是我在菜单中添加的项目xml:
<item
android:id="@+id/menu_spinner"
android:background="#ff00"
android:title="@string/countryname"
app:actionViewClass="android.widget.Spinner"
app:showAsAction="always"></item>
</menu>
在菜单中创建 fragment_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/spinner"
android:title="ActionBar Spinner"
app:actionViewClass="android.widget.Spinner"
android:background="#ff00"
app:showAsAction="always" />
</menu>
覆盖fragment的onCreateOptionsMenu方法并添加以下代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.fragment_menu, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.spinner_list_item_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return true;
}
希望这能奏效。
在您的片段的 onCreateView()
中
调用这个 setHasOptionsMenu(true)
然后在你的 fragment
中膨胀你的菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.fragment_menu, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.spinner_list_item_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return true;
}
创建一个名为 fragment_menu
的菜单 xml,并将 spinner
设置为 menuItem
中的 actionView
。
这是我的 onActivityCreated()
方法:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onActivityCreated(savedInstanceState);
}
这是我给微调器充气并设置适配器时的 onCreateOptionsMenu()
方法:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem menuItem = menu.findItem(R.id.menu_spinner);
mCountrySpinner = (Spinner) MenuItemCompat.getActionView(menuItem);
ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, mCountryList);
countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mCountrySpinner.setAdapter(countryAdapter);
super.onCreateOptionsMenu(menu, inflater);
}
这是我的菜单 xml,我在其中添加了项目并将 app:actionViewClass
设置为 android.widget.Spinner
:
<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=".activity.MainActivity">
这是我在菜单中添加的项目xml:
<item
android:id="@+id/menu_spinner"
android:background="#ff00"
android:title="@string/countryname"
app:actionViewClass="android.widget.Spinner"
app:showAsAction="always"></item>
</menu>
在菜单中创建 fragment_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/spinner"
android:title="ActionBar Spinner"
app:actionViewClass="android.widget.Spinner"
android:background="#ff00"
app:showAsAction="always" />
</menu>
覆盖fragment的onCreateOptionsMenu方法并添加以下代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.fragment_menu, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.spinner_list_item_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return true;
}
希望这能奏效。
在您的片段的 onCreateView()
中
调用这个 setHasOptionsMenu(true)
然后在你的 fragment
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.fragment_menu, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.spinner_list_item_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return true;
}
创建一个名为 fragment_menu
的菜单 xml,并将 spinner
设置为 menuItem
中的 actionView
。