【发布时间】:2014-08-12 03:36:15
【问题描述】:
我有一个 ImageView 数组。一旦您单击它们,就可以选择这些 ImageView。它们的 stroke 属性从 0(未选中)和 4(选中)变化。现在我有两个按钮,“ClearAll”和“Back”。如果我单击后退按钮,所有选定的 ImageViews 描述都将显示在 Toast 消息中(例如“您选择了 iv1、iv2、iv3”)。 “ClearAll”按钮的作用是清除选择 - 假设我点击了 ImageView 1、2 和 3 - 如果我点击“ClearAll”,他们的笔划将回到 0(表示每个选择都被清除) .但是我有一个问题,假设我单击了 ImageView 1、2 和 3,然后我的想法发生了变化,我想单击 ImageView 4、5、6,然后单击“返回”。 Toast 消息显示我也清除的那些 ImageView 的描述,输出是这样的,“你选择了 iv1、iv2、iv3、iv4、iv5、iv6。我怎样才能修复我的代码,以便那些已被“ClearAll”清除的 Toast 不会显示?
这是上面每个的代码sn-p。
图像视图:
for (int i = 0 ; i < color.length ; i++) {
color[i] = (ImageView) findViewById (ivCirclesId[i]);
final GradientDrawable ivCircleOnClick = (GradientDrawable) color[i].getBackground ();
color[i].setTag ("0");
color[i].setOnClickListener (new OnClickListener() {
public void onClick (View v) {
if (v.getTag ().toString ().equals ("1")) {
--ctr;
v.setTag ("0");
ivCircleOnClick.setStroke (0, Color.WHITE);
} else {
if(ctr >= 8) {
Toast.makeText (getApplicationContext (), "Limit reached!", Toast.LENGTH_SHORT).show ();
return;
}
++ctr;
v.setTag ("1");
ivCircleOnClick.setStroke (4, Color.WHITE);
message = message + "#" + v.getContentDescription ();
return;
}
}
});
全部清除:
Button btnClear = (Button) findViewById (R.id.btnClearAll);
btnClear.setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v) {
for (int i = 0 ; i < color.length; i++) {
final GradientDrawable ivCircleOnClick = (GradientDrawable) color[i].getBackground ();
ivCircleOnClick.setStroke (0, Color.WHITE);
color[i].setTag ("0");
ctr = 0;
}
}
});
返回:
Button btnBack = (Button) findViewById (R.id.btnBack);
btnBack.setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v) {
if (ctr >= 1) {
Toast.makeText (Filter.this, message, Toast.LENGTH_SHORT).show();
message = "";
}
finish();
}
});
【问题讨论】:
标签: java android android-toast