Button Listener not get registered on first click In android

后端 未结 3 1618
死守一世寂寞
死守一世寂寞 2021-01-22 00:36

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 clic

相关标签:
3条回答
  • 2021-01-22 00:59

    **

    try this

    **

     public class DashbordActivity extends Activity {
    
    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);
     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);
        }
    });
    
    
    
    }
    
    0 讨论(0)
  • 2021-01-22 01:01

    You are registering the listeners for the button two times..After first click on the button you again registering button with original listener..Remove all the button onClick methods and change your code like this..

    // on click any button
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btnOENew) {
            Intent intent = new Intent(getBaseContext(),
                    OceanSalesActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.btnAENew) {
            Intent intent = new Intent(getBaseContext(), AirSalesActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.btnSearch) {
            Intent intent = new Intent(getBaseContext(), SearchActivity.class);
            startActivity(intent);
        } else if (v.getId() == R.id.btnLogout) {
            onLogout();
        } else if (v.getId() == R.id.btnSync) {
            Intent intent = new Intent(getBaseContext(), SyncActivity.class);
            startActivity(intent);
        }
    }
    
    0 讨论(0)
  • 2021-01-22 01:02

    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
          }
    }
    
    0 讨论(0)
提交回复
热议问题