繁体   English   中英

Android:单击其他ImageButtons时闪烁的屏幕

[英]Android: Flashing screen when clicked on different ImageButtons

我有3个用于标签的ImageButton,单击它们会加载新的活动,但是我遇到的问题是它们感到“松懈”,如果多次单击它们,屏幕开始闪烁,最终应用崩溃有什么办法摆脱闪烁的屏幕,或者我应该对选项卡使用另一种方法吗?

这是我使用的代码:

import android.app.Activity;

public class ContactsActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contacts_tab);

    final ImageButton b = (ImageButton) findViewById(R.id.imageButtonCall);
    b.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(ContactsActivity.this,CallActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
        finish();
    }
});

    final ImageButton c = (ImageButton) findViewById(R.id.imageButtonSettings);
    c.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(ContactsActivity.this,SettingsActivity.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
        finish();
    }
});

试图使按钮不能同时被多次单击该怎么办?

将其作为全局变量放在类中:

boolean isBclicked = false;

现在重写onClickListener:

final ImageButton b = (ImageButton) findViewById(R.id.imageButtonCall);
    b.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
         if( !isBclicked){
           isBclicked = true;
           Intent intent = new Intent(ContactsActivity.this,CallActivity.class);
           startActivity(intent);
           overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
           finish();
         }
   }
});

因此,基本上用户将无法多次单击按钮,这意味着动画不会被打断,因此您的问题将得到解决。 您可以使用其他按钮执行相同的操作,并且由于在开始新活动后您完成了当前活动,因此无需将“ isBclicked”设置回false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM