in Android Studio Ich entwickelte eine Ansicht, die aus 15 TableRows besteht, und jede TableRow enthält 15 ImageViews. (Jedes ImageView speichert eine Bitmap mit quadratischer Form, und dies erzeugt eine 15 x 15 quadratische Matrix). Relevante Codierung von Ansicht onCreate grob wie folgt:Wie bekomme ich ImageView, das vom Benutzer in ein Array geklickt wurde?
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]);
}
....
Meine Frage ist, wie kann ich wissen, welche Imageview (Total = 15 x 15 = 225) wurde durch die Verwendung von Ereignisse OnClick vom Benutzer angeklickt zu werden? Wenn der Benutzer auf das ImageView klickt, das sich bei (imageViews [13] bei TableRow = 4 befindet), kann ich diese x-y-Koordinateninformation (z. B. x = 13, y = 4) zurückgeben und zu anderen Teilen des Programms zurückkehren?
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???
Oder gibt es einen anderen besseren alternativen Weg, dies zu tun?