0
我想创建一个Instagram风格的ListView。该活动的顶部有一个工具栏,允许用户按下并显示相机。我很满意ToolBar的外观。 ToolBar下面是一个ListView。java.lang.RuntimeException:期待菜单,得到RelativeLayout
布局/ main_activity.xml
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white">
...
</android.support.v7.widget.Toolbar>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar"
android:layout_centerHorizontal="true"
android:id="@+id/listView" />
MainActivity.java
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
我创建了一个自定义适配器为我的ListView。
listView = (ListView) findViewById(R.id.listView);
items = new ArrayList<Item>();
ItemAdapter = new ItemAdapter(this, 0, items);
listView.setAdapter(ItemAdapter);
在ItemAdapter类,我为每个ListView项指定布局:
public View getView(int position, View convertView, ViewGroup parent) {
Item item = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_list, parent, false);
}
的问题是在布局/ item_list.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/photo" android:layout_toEndOf="@+id/photo">
<ImageView
android:id="@+id/usericon"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<TextView
android:id="@+id/username"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_more_vert_black_24dp"
android:contentDescription="@string/descr_overflow_button"
android:id="@+id/overflow_menu" />
</LinearLayout>
<ImageView
android:id="@+id/photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"/>
</RelativeLayout>
当我这样做的我的动态:
overflowMenu = (ImageView) findViewById(R.id.overflow_menu);
PopupMenu popup = new PopupMenu(this, overflowMenu);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.item_loop, popup.getMenu());
我该如何在layouts/item_list.xml中显示PopupMenu?
阅读文档https://developer.android.com/reference/android/view/MenuInflater.html#inflate(int,%20android.view.Menu)它给出了一些事例:“R.menu .main_activity',所以只是菜单。 – njzk2