【发布时间】:2019-05-17 06:00:01
【问题描述】:
我实现了一个自定义按钮并延迟添加了一个任务,以便它显示动画。 当我双击它时,它崩溃了。我想做,所以它只能点击一次。
我试过 setEnabled(false); 我试过 setClickable(false);
我尝试了一个变量来检查按钮是否被点击并禁用它。
public class Login extends AppCompatActivity {
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final SubmitButton LoginBtn = findViewById(R.id.login);
handler = new Handler();
LoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginBtn.setEnabled(false);
handler.postDelayed(new Runnable() {
@Override
public void run() {
LoginBtn.setEnabled(true);
Intent startActivity = new Intent(Login.this, Main_page.class);
startActivity(startActivity);
finish();
}
}, 3200);
}
});
}
}
正如我所写,我希望如果按钮被点击,它就会变得不可点击。
【问题讨论】:
-
您将
LoginBtn声明为final,这是否意味着您将无法更改该值? -
当我尝试使用 is without final android studio 发送一个错误,它正在访问内部类中的变量并且它必须被声明为 final。
-
发布堆栈跟踪。
-
自从我实现了 if 函数,应用程序不再崩溃。虽然现在我可以按我想要的次数多次按下按钮,并且在 3200 毫秒后,许多活动打开,至少可以看到许多动画。我将删除 if 函数并发布堆栈。
-
2019-05-16 23:28:25.582 1631-1703/? E/AudioFlinger: createRecordTrack_l() initCheck failed -12;没有控制块? 2019-05-16 23:28:25.587 2642-10416/com.google.android.googlequicksearchbox:search E/IAudioFlinger: createRecord 返回错误 -12 2019-05-16 23:28:25.587 2642-10416/com.google。 android.googlequicksearchbox:search E/AudioRecord: AudioFlinger 无法创建记录轨道,状态:-12 2019-05-16 23:28:25.588 2642-10416/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error创建 AudioRecord 实例:初始化检查失败,状态为 -12。