按钮侦听没有得到注册首先点击Android中 [英] Button Listener not get registered on first click In android

查看:185
本文介绍了按钮侦听没有得到注册首先点击Android中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于我是新来的android在这里我得到了听众按钮的问题
我使用OnClickListener为busttons但它的多年平均值后进行第一次点击当我点击多个执行良好,但如何使人们有可能在第一次点击它的自我
这里是我的code:

 公共类DashbordActivity扩展活动实现OnClickListener {的ImageButton btnLogout,btnSearch,btnOENew,btnAENew,btnSync;
//会话管理器类
是SessionManager会议= NULL;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.dashbord_activity);    //会话管理器
    会话=新SessionManager(中间getApplicationContext());    / *操作栏颜色变化上创建* /
    ColorDrawable colorDrawable =新ColorDrawable(Color.parseColor(#FF7F24));
    动作条动作条= getActionBar();
    actionBar.setBackgroundDrawable(colorDrawable);    / *从XML文件*获得资源/
    btnOENew =(的ImageButton)findViewById(R.id.btnOENew);
    btnAENew =(的ImageButton)findViewById(R.id.btnAENew);
    btnSearch =(的ImageButton)findViewById(R.id.btnSearch);
    btnLogout =(的ImageButton)findViewById(R.id.btnLogout);
    btnSync =(的ImageButton)findViewById(R.id.btnSync);    addButtonListener(); //上点击任何链接
}
    //点​​击任意按钮
私人无效addButtonListener(){
    //找到我们的按钮和钩了点击程序
    btnOENew.setOnClickListener(本);
    btnSearch.setOnClickListener(本);
    btnAENew.setOnClickListener(本);
    btnLogout.setOnClickListener(本);
    btnSync.setOnClickListener(本);
}//点​​击任意按钮
@覆盖
公共无效的onClick(视图v){
    btnOENew.setOnClickListener(新OnClickListener(){
        公共无效的onClick(视图v){
            意向意图=新意图(getBaseContext(),OceanSalesActivity.class);
            startActivity(意向);
        }
    });    btnAENew.setOnClickListener(新OnClickListener(){
        公共无效的onClick(视图v){
            意向意图=新意图(getBaseContext(),AirSalesActivity.class);
            startActivity(意向);
        }
    });    btnSearch.setOnClickListener(新OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){
            意向意图=新意图(getBaseContext(),SearchActivity.class);
            startActivity(意向);
        }
    });
    btnLogout.setOnClickListener(新OnClickListener(){
        公共无效的onClick(视图v){
            onLogout();
        }
    });    btnSync.setOnClickListener(新OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){
            意向意图=新意图(getBaseContext(),SyncActivity.class);
            startActivity(意向);
        }
    });
}


解决方案

为什么你需要时,你有annonymous内部类

  btnOENew.setOnClickListener(本);

和您的类实现 OnClickListener

所有你需要的是的onClick开关的情况下

  @覆盖
公共无效的onClick(视图v){    开关(v.getId())
     {
       案例R.id.btnOENew:
           //按钮btnOENew点击
       打破;
       案例R.id.btnAENew:
            //按钮btnAENew点击
       打破;
       ... //其他按钮类似
      }
}

As i am new to android here i got the problem for button listeners I am using OnClickListener for busttons but it doesnot performs after first click once i click more than one it performs well but how to make it possible on first click it self here is my code:

public class DashbordActivity extends Activity implements OnClickListener{

ImageButton btnLogout, btnSearch, btnOENew, btnAENew,btnSync;
// Session Manager Class
SessionManager session = null;

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

    // Session Manager
    session = new SessionManager(getApplicationContext());

    /* Action Bar Color change on create*/
    ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#FF7F24"));
    ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(colorDrawable);

    /* get Resources from Xml  file */
    btnOENew = (ImageButton) findViewById(R.id.btnOENew);
    btnAENew = (ImageButton) findViewById(R.id.btnAENew);
    btnSearch = (ImageButton) findViewById(R.id.btnSearch);     
    btnLogout = (ImageButton) findViewById(R.id.btnLogout);
    btnSync = (ImageButton)findViewById(R.id.btnSync);

    addButtonListener();// on click any button
}
    // on click any button
private void addButtonListener() {
    // Find our button and hook-up the click routine
    btnOENew.setOnClickListener(this);
    btnSearch.setOnClickListener(this);     
    btnAENew.setOnClickListener(this);
    btnLogout.setOnClickListener(this);
    btnSync.setOnClickListener(this);
}

// on click any button
@Override
public void onClick(View v) {
    btnOENew.setOnClickListener(new OnClickListener() {         
        public void onClick(View v) {
            Intent intent = new Intent(getBaseContext(),           OceanSalesActivity.class);
            startActivity(intent);
        }
    });

    btnAENew.setOnClickListener(new OnClickListener() {         
        public void onClick(View v) {
            Intent intent = new Intent(getBaseContext(), AirSalesActivity.class);
            startActivity(intent);
        }
    });

    btnSearch.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getBaseContext(), SearchActivity.class);
            startActivity(intent);
        }
    });


    btnLogout.setOnClickListener(new OnClickListener() {            
        public void onClick(View v) {               
            onLogout();
        }
    });

    btnSync.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent( getBaseContext() , SyncActivity.class);                                                
            startActivity(intent);
        }
    });
}

解决方案

Why do you need annonymous inner class when you have

 btnOENew.setOnClickListener(this);

and your class implements OnClickListener

All you need is switch case in onClick

@Override
public void onClick(View v) {

    switch(v.getId())
     {
       case R.id.btnOENew :
           // button btnOENew clicked
       break;
       case R.id.btnAENew :
            // button btnAENew clicked  
       break;
       ... // similar for other buttons
      }
}

这篇关于按钮侦听没有得到注册首先点击Android中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆