我有一个 ListActivity ,其行定义如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/me_games_won"
android:textSize="16sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/gamesmate_username"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/him_games_won"
android:textSize="16sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/imageMenuGamesmate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_settings" />
</LinearLayout>
根据行的某些状态,图像用于弹出或不弹出菜单。我的 ArrayAdapter 有这段代码来启动弹出菜单:
public View getView(int position, View convertView, ViewGroup parent) {
...
myimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(v.getContext(), v);
popupMenu.getMenuInflater().inflate(R.menu.popupmenu_gamesmate, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
popupMenu.show();
}
});
现在,当用户单击菜单项时,将执行一个操作,但需要该行的值来正确格式化请求。
我正在寻找最好的设计模式来做到这一点?
也许继承 ListActivity 的 ListView 的行视图,但那又如何呢?也许子类化 PopupMenu 以使其保留用于创建行的数据版本?ETC...
有人有好主意吗?
干杯。大卫。