Android:点击不同的ImageButtons时闪烁屏幕

时间:2014-03-23 21:42:44

标签: android performance android-activity

我有3个用于标签的ImageButtons,当他们点击它们时会加载一个新的活动,但我遇到的问题是他们觉得“滞后”,如果你多次点击它们,屏幕开始闪烁,最终应用崩溃,有没有办法摆脱闪烁的屏幕或我应该使用另一种方法的标签?

以下是我使用的代码:

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();
    }
});

1 个答案:

答案 0 :(得分:1)

尝试让按钮无法同时点击多次?

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

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"回到假。