いくつかのカスタム子ビューを作成するカスタム ViewGroup を作成しました (xml ではなく Java コードで)。これらの各子には、同じ onClick イベントが必要です。
これらのクリック イベントを処理するメソッドは、レイアウトを使用するアクティビティ クラスにあります。このメソッドをすべての子ビューの onClick ハンドラとして設定するにはどうすればよいですか?
これが私のコードを簡略化したものです。
カスタム ViewGroup:
public class CellContainerGroup extends ViewGroup
{
CellView[][] CellGrid = new CellView[9][9];
public CellContainerGroup(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(R.styleable.CellContainerGroup);
try {
//initialize attributes here.
} finally {
a.recycle();
}
for(int i = 0; i < 9 ; i++)
for(int j = 0 ; j < 9 ; j++)
{
//Add CellViews to CellGrid.
CellGrid[i][j] = new CellView(context, null); //Attributeset passed as null
//Manually set attributes, height, width etc.
//...
//Add view to group
this.addView(CellGrid[i][j], i*9 + j);
}
}
}
クリック ハンドラーとして使用するメソッドを含むアクティビティ:
public class SudokuGameActivity extends Activity {
//Left out everything else from the activity.
public void cellViewClicked(View view) {
{
//stuff to do here...
}
}