嘿,我正在尝试编写一个简单的代码,一旦单击图像两次或更多次,布局的可见性就可见。 遗憾的是我的代码不起作用,但我不明白为什么。
这是我的代码 -
public class MainActivity extends AppCompatActivity {
ImageView logoIMG;
LinearLayout adminLinear;
int cnt = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
logoIMG = (ImageView) findViewById(R.id.logo);
adminLinear = (LinearLayout) findViewById(R.id.adminLinear);
adminLinear.setVisibility(View.INVISIBLE);
adminLinear.setEnabled(false);
while (adminLinear.getVisibility() != View.VISIBLE) {
logoIMG.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (cnt >= 2) {
adminLinear.setVisibility(View.VISIBLE);
adminLinear.setEnabled(true);
} else {
cnt++;
}
}
});
}
}
}
最佳答案
在 while 循环中设置 onClickListener,将无限循环并继续尝试添加新的监听器,这将导致问题。
执行以下操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
logoIMG.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (cnt >= 2) {
adminLinear.setVisibility(View.VISIBLE);
adminLinear.setEnabled(true);
} else {
cnt++;
}
}
});
}
关于java - Android Studio 中使用 setOnClickListener 的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651040/