我当前有三个Imageview按钮,它们在我的android应用程序中调用了三个不同的函数。我要使用3个按钮,而不是3个按钮,该按钮应在每次点击时调用每个功能(如切换按钮)。请找到我当前的三个独立按钮(ImageView)的XML结构
<ImageView
android:id="@+id/img_align_left"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="TODO"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_left" />
<ImageView
android:id="@+id/img_align_center"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_center" />
<ImageView
android:id="@+id/img_align_right"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_right" />
这是功能调用脚本,该脚本在主要活动中使用。
img_align_left.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_START) }
img_align_center.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_CENTER) }
img_align_right.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_END) }
让我知道查询是否为您提供了足够的信息。 谢谢!
-------------------------更新--------------------- ----------------
基于@Kam代码,我能够解决此问题(我使用Kotlin)。这是代码。
var count=0
img_align_left.setOnClickListener {
when (count) {
0 -> {
alingnText(View.TEXT_ALIGNMENT_TEXT_START)
}
1 -> {
alingnText(View.TEXT_ALIGNMENT_CENTER)
}
2 ->
{alingnText(View.TEXT_ALIGNMENT_TEXT_END)}
}
if(count>1)
count=0
else
count++}
谢谢:)
答案 0 :(得分:1)
您可以拥有的是一个按钮和一个计数器,您上次更改了imageView。
int counter = 0;
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(counter){
case 0:
//First ImageView
break;
case 1:
//Second ImageView
break;
case 2:
//Third ImageView
counter = 0;
break;
}
}
});
因此,每次您单击按钮时,它将更改计数器值,直到到达第三个imageView。再次单击它后,该按钮将聚焦在第一个imageView上。