私は15のTableRowで構成されるビューを開発し、各TableRowには15のImageViewが含まれています。 (各ImageViewは正方形のビットマップを格納し、これは15 x 15正方行列を生成します)。おおよそ以下のように表示のonCreateの関連コーディング:Array内でユーザーがクリックしていたImageViewを取得するにはどうすればよいですか? Android Studioの
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
TableRow[] tr = new TableRow[15];
for (int i = 0; i < 15; i++) {
tr[i] = new TableRow(this);
for (int j = 0; j < 15; j++) {
bmp = BitmapFactory.decodeResource(getResources(),R.drawable.jmpty);
imageViews[j] = new ImageView(this);
imageViews[j].setImageBitmap(bmp);
imageViews[j].setOnClickListener(new doSomething());
tr[i].addView(imageViews[j],oParams);
}
tableLayout.addView(tr[i]);
}
....
私の質問は、私はImageViewの(= 15×15 = 225の合計)はOnClickイベントを利用することにより、ユーザーがクリックされた知っていますかですか?すなわち、ユーザが(TableRow = 4にあるimageViews [13]にある)ImageViewをクリックすると、このx-y座標情報(例えばx = 13、y = 4)を取得してプログラムの他の部分に戻ることができるか?
private class doSomething implements View.OnClickListener {
@Override
public void onClick(View v) {
ImageView iv = (ImageView) v;
......
// what I want:
int x = iv.GetImageViewNumber(); // how can I do this???
int y = iv.GetTableRowNumber(); // how can I do this???
これを行うには他にも優れた方法がありますか?