gpt4 book ai didi

android - 点击事件转移到下一个启动的Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:38 25 4
gpt4 key购买 nike

我受到 Android 中奇怪事件处理的影响。我的问题是,如果用户非常快地多次点击 Button,则事件会排队并进一步转移到下一个 Activity

这是一个例子:

<Button
android:id="@+id/btn_home_show"
style="@style/main_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/home_label_show" />

Activity onClick:

public void onClick(View view) {
int viewId = view.getId();

if (viewId == EXPECTED_VIEW_ID) {
Intent intent = new Intent(this, CarouselActivity.class);
startActivity(intent);
}
}

在我的 Activity 中,我有另一个可以在屏幕上使用相同坐标点击的项目。

发生的情况是,如果用户在 Button 上点击得非常快,那么此点击事件将转移到新启动的 Activity 和另一个 onClick 处理发生。

我试过 2.3.3 和 2.3.5 框架版本,行为是一样的。有什么想法吗?

最佳答案

一个简单的解决方案是添加一个 bool 值来确定是否处理点击,然后创建一个休眠线程,然后将该值设置为 true

public void onClick(View view) {

if (inputAllowed) {
//do stuff
}
}

boolean inputAllowed = true;
private class ButtonDelay extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {

}

@Override
protected Void doInBackground(Void... params) {

try {
inputAllowed = false;

Thread.sleep(500);
inputAllowed = true;
} catch (InterruptedException e) {

e.printStackTrace();
}
return null;

}

@Override
protected void onPostExecute(final Void unused) {

}

}

并在 onCreate() 中立即启动异步任务。至于为什么会发生这种情况,我猜新 Activity 创建了新按钮,并且由于用户正在快速点击,它会记录这些点击。

关于android - 点击事件转移到下一个启动的Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com