Если я правильно понял ваше требование. Вы хотите, чтобы пользователь мог выбрать только одно изображение из трех правых.
Тогда вы должны перейти на RadioButton с RadioGroup
Поскольку с помощью радиогруппы вы можете легко определить, какое изображение выбрано. А радиогруппа позволит пользователю выбирать только одну опцию за раз.
Вы можете выполнить этот пример и попробовать его.
Activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main4Activity">
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/frontShotIV"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/colorAccentLight"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher_background" />
<ImageView
android:id="@+id/sideShotIV"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="16dp"
android:background="@color/colorAccentLight"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher_background" />
<ImageView
android:id="@+id/backShotIV"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="16dp"
android:background="@color/colorAccentLight"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher_background" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/layout">
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioFrontImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/frontShotIV"
android:layout_marginLeft="60dp"
android:gravity="center_horizontal" />
<RadioButton
android:id="@+id/radioSideImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/frontShotIV"
android:layout_marginLeft="90dp"
android:layout_toRightOf="@+id/frontShotIV"
android:gravity="center_horizontal" />
<RadioButton
android:id="@+id/radioBackImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/backShotIV"
android:layout_marginLeft="80dp"
android:layout_marginTop="4dp" />
</RadioGroup>
</LinearLayout>
<Button
android:id="@+id/btnCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="166dp"
android:text="Check selected Image"/></RelativeLayout>
Activity.java:
public class Main4Activity extends AppCompatActivity {
private RadioGroup radiogroup;
private RadioButton radioFrontImg;
private RadioButton radioSideImg;
private RadioButton radioBackImg;
private RadioButton radioButton;
private Button btnCheck;
private String selectedImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
init();
}
private void init() {
radiogroup = findViewById(R.id.radiogroup);
radioFrontImg = findViewById(R.id.radioFrontImg);
radioSideImg = findViewById(R.id.radioSideImg);
radioBackImg = findViewById(R.id.radioBackImg);
btnCheck = findViewById(R.id.btnCheck);
btnCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
method1();
method2();
}
});
}
private void method2() {
if (radioFrontImg.isChecked()) {
selectedImage = "frontShotIV";
} else if (radioSideImg.isChecked()) {
selectedImage = "sideShotIV";
} else if (radioBackImg.isChecked()) {
selectedImage = "backShotIV";
}
Toast.makeText(getApplicationContext(), selectedImage, Toast.LENGTH_LONG).show();
Log.e("selectedImage", selectedImage);
}
private void method1() {
int selectedId = radiogroup.getCheckedRadioButtonId();
radioButton = (RadioButton) findViewById(selectedId);
if (selectedId == R.id.radioFrontImg)
selectedImage = "frontShotIV";
else if (selectedId == R.id.radioSideImg)
selectedImage = "sideShotIV";
else if (selectedId == R.id.radioBackImg)
selectedImage = "backShotIV";
Toast.makeText(Main4Activity.this, selectedImage, Toast.LENGTH_SHORT).show();
Log.e("selectedImage",selectedImage);
}
}
Существует два метода, которые вы можете использовать любым из них.