行が次のように定義された 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 をサブクラス化するのでしょうか。等...
良いアイデアを持っている人はいますか?
乾杯。デビッド。