Довольно новичок в Android, в настоящее время у меня возникают трудности с реализацией PopupMenu
на моем ImageButton
во фрагменте. В коде нет ошибок, эмулятор успешно собирается, но при нажатии на ImageButton
всплывающее меню не появляется.
OneFragment.java
public class OneFragment extends Fragment {
public OneFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.fragment_one, container,false);
ImageButton popupButton = (ImageButton)rootview.findViewById(R.id.chineseTelevision);
popupButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(getActivity().getApplicationContext(), v);
popupMenu.inflate(R.menu.menu_main);
popupMenu.show();
}
});
return inflater.inflate(R.layout.fragment_one, container, false);
}
}
После применения раствора Pavneet (это правильное решение)
return rootview;
Я наткнулся на другую ошибку,
android.view.InflateException: Binary XML file line #17: Failed to resolve attribute at index 6: TypedValue{t=0x3/d=0x486 "res/drawable/ic_menu_moreoverflow_material.xml" a=1 r=0x10803d6}
Я узнал, что эта ошибка была вызвана android.support.v7.widget.PopupMenu.
В этой ссылке есть решение, но нет объяснения, почему виджет вызвал проблему. Здесь Всплывающее меню в пользовательском ListView