ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー public class gameActivity extends Activity { gameActivity now = this; Field gameField; public Button[] buttons; public TextView[] fieldT; TextView[][] playerT; WindowLayout[] layoutWindow;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); layoutWindow = new WindowLayout[7]; buttons = new Button[7]; buttons[0] = (Button) findViewById(R.id.buttonA); 類似した宣言、省略 layoutWindow[0] = new WindowA(now, 1,2,0,0); 類似した宣言、省略 for(int i = 0; i<6; i++) { final int finalI = i; buttons[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { layoutWindow[finalI].setAction(now, gameField); layoutWindow[finalI].showPopupCenter(v); } }); } buttons[6].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { gameField.changeTurn(now, v); } }); } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー public class WindowA extends WindowLayout { public WindowA(gameActivity now, int buttonNum, int textNum, int editNum, int imageNum) { super(now, buttonNum, textNum, editNum, imageNum); layout = new LinearLayout(now); texts[0].setText(R.string.a); texts[1].setText(R.string.b); buttons[0].setText(R.string.c); layout.addView(texts[0]); //? layout.addView(texts[1]); layout.addView(buttons[0]); setPopup(now); } @Override public void setAction(final gameActivity now, final Field field) { buttons[0].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ボタンを押したときのアクションは省略 } }); } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー public abstract class WindowLayout{ public ViewGroup layout; public PopupWindow popup; public Button[] buttons; public TextView[] texts; public EditText[] edits; public ImageView[] images; public WindowLayout(gameActivity now,int buttonNum, int textNum, int editNum, int imageNum){ buttons = new Button[buttonNum]; texts = new TextView[textNum]; edits = new EditText[editNum]; images = new ImageView[imageNum]; Arrays.fill(buttons, new Button(now)); Arrays.fill(texts, new TextView(now)); Arrays.fill(edits, new EditText(now)); Arrays.fill(images, new ImageView(now)); } public abstract void setAction(gameActivity now, Field field); public void setPopup(Activity now){ PopupWindow popupWindow = new PopupWindow(now); popupWindow.setWindowLayoutMode(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); popupWindow.setContentView(layout); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); this.popup = popupWindow; } public void showPopupCenter(View v){ popup.showAtLocation(v, Gravity.CENTER, 0, 0); } } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー