您可以嘗試和使用startActivityForResult()
。
private static final int REQUEST_CODE_MAKE_CLICKABLE = 1;
private boolean mAlreadyClicked = false;
private OnClickListener playClickListener() {
return new OnClickListener() {
@Override
public void onClick(View v) {
if(mAlreadyClicked) return;
mAlreadyClicked = true;
Intent intent = new Intent(getActivity(), TestActivity.class);
startActivityForResult(intent, REQUEST_CODE_MAKE_CLICKABLE);
}
};
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE_MAKE_CLICKABLE && resultCode == Activity.RESULT_OK) {
mAlreadyClicked = false;
}
}
,並在您的測試活動,您可以覆蓋完成,以做到以下幾點:
@Override
public void finish() {
setResult(Activity.RESULT_OK, new Intent());
super.finish();
}
這將導致點擊被解僱只有一次,直到下一次活動的收益和「重新啓用」點擊功能。
- 或 -
你可能是枯燥的,並保持布爾和簡單的 「重置」 它的onResume():
private boolean mAlreadyClicked = false;
private OnClickListener playClickListener() {
return new OnClickListener() {
@Override
public void onClick(View v) {
if(mAlreadyClicked) return;
mAlreadyClicked = true;
Intent intent = new Intent(getActivity(), TestActivity.class);
startActivity(intent, REQUEST_CODE_MAKE_CLICKABLE);
}
};
}
@Override
public void onResume() {
super.onResume();
mAlreadyClicked = false;
}
您真的應該是枯燥的,但使用交叉Activity回調總是很有趣。 :)
謝謝!我爲無聊的方式去了 - 希望有更優雅的東西。工作正常 - 這是主要的事情! – serenskye