Незначительно новое для 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.
У этой ссылки есть решение, но не объяснено, почему виджет вызвал проблему. Здесь Popup Menu in custom ListView
Спасибо за ваше объяснение, я больше понимаю, какой вид вернуться сейчас. Код выполнялся без каких-либо ошибок, но после нажатия кнопки ImageButton у меня есть эта ошибка. 'android.view.InflateException: двоичная строка XML-файла # 17: не удалось разрешить атрибут по индексу 6: TypedValue {t = 0x3/d = 0x486" res/drawable/ic_menu_moreoverflow_material.xml "a = 1 r = 0x10803d6} ' – wuck
это что-то с ресурсами, я пробовал свой код и с моим решением, и он отлично работает, просто убедитесь, что у ваших файлов' theme' и 'menu xml' нет проблем, хотя кажется проблемой« темы »для меня, попробуйте очистить и run –
После некоторых поисковых запросов, я узнал, что ошибка после вашего решения была проблемой виджета всплывающих окон. Вот ссылка [link] (http://stackoverflow.com/questions/27782846/popup-menu-in-custom-listview), если кто-то получит ту же проблему, что и я. Спасибо, Павленэ. – wuck