这是我的自定义视图代码.我试图阻止对此EditText的多次点击,但它仍然打开两个EditStatusActivity屏幕.为什么?
setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
if(isClicked) {
return;
}
isClicked = true;
setEnabled(false);
setClickable(false);
final Intent intent = new Intent(activity, EditStatusActivity.class);
intent.putExtra(STATUS, currentStatus);
activity.startActivityForResult(intent, EDIT_STATUS_REQUEST_CODE);
isClicked = false;
setEnabled(true);
setClickable(true);
}
});
Run Code Online (Sandbox Code Playgroud)
在onActivityResult方法上重置isClicked和setEnabled
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
isClicked = false;
setEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
正如pablochan写道:
该
startActivityForResult方法是非阻塞的.这意味着,一旦启动EditStatusActivity,您立即将isClickable变量设置 为false,这就是您可以进行额外点击的原因.
您应该永远不要设置isClickable为true或在onActivityResult方法中将其设置为true .
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |