如何在单击第一个按钮之前禁用其他按钮

时间:2013-01-21 08:22:44

标签: android button

我是android的新手。当我点击第一个标签时,我有四个按钮。我希望用户先点击第一个按钮,而不是先点击其他按钮。所以需要禁用其他按钮,直到我点击第一个按钮,一旦点击第一个按钮,当用户返回时,需要启用所有按钮。我该怎么做呢?请帮忙!!

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId() == R.id.imgbtn_details)
    {
        attendees_imgbtn.setEnabled(true);
        resources_imgbtn.setEnabled(true);
        contacts_imgbtn.setEnabled(true);
        count = 1;
        Intent detail_intent=new Intent(getActivity().getApplicationContext(),DetailsActivity.class);
        detail_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(detail_intent);
    }
    else if(v.getId() == R.id.imgbtn_attendees && count == 0)
    {

        if(count == 1)
        {
        Intent attendee_intent = new Intent(getActivity().getApplicationContext(),AttendeesActivity.class);
        attendee_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(attendee_intent);
        }
        else
        {
            attendees_imgbtn.setEnabled(false);
            resources_imgbtn.setEnabled(false);
            contacts_imgbtn.setEnabled(false);
        }
    }
    else if(v.getId() == R.id.imgbtn_resources && count == 0)
    {

        if(count == 1)
        {
        Intent resources_intent = new Intent(getActivity().getApplicationContext(),ResourcesActivity.class);
        resources_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(resources_intent);
        }
        else
        {
            attendees_imgbtn.setEnabled(false);
            resources_imgbtn.setEnabled(false);
            contacts_imgbtn.setEnabled(false);
        }
    }
    else if(v.getId() == R.id.imgbtn_contacts && count == 0)
    {

        if(count == 1)
        {
        Intent contact_intent = new Intent(getActivity().getApplicationContext(),ContactsActivity.class);
        contact_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(contact_intent);
        }
        else
        {
            attendees_imgbtn.setEnabled(false);
            resources_imgbtn.setEnabled(false);
            contacts_imgbtn.setEnabled(false);
        }
    }
}

4 个答案:

答案 0 :(得分:1)

使用setEnable(true)按钮启用和禁用按钮

答案 1 :(得分:0)

试试这段代码:

Public static boolean enable_buttons = false;

  if(enable_buttons == false){   
    button2.setEnable(false);
    button3.setEnable(false);
    button4.setEnable(false);
  }else{
    button2.setEnable(true);
    button3.setEnable(true);
    button4.setEnable(true);
  }
button1.setOnClickListener(new OnClickListener() {           

  @Override
  public void onClick(View v) 
  {
      button2.setEnable(true);
      button3.setEnable(true);
      button4.setEnable(true);
      enable_buttons = true;
  }    
}

答案 2 :(得分:0)

定义一个静态布尔变量wasClicked ....如果but1被点击make变量为true,否则为false ...覆盖此方法....当用户返回时,它将首先检查启用或禁用为1st但是被点击或者不

    @Override
     protected void onResume() {
    // TODO Auto-generated method stub
     if(!wasClicked){
        but2.setClickable(false);       
        but3.setClickable(false);
        but4.setClickable(false);           
     }else{
        but2.setClickable(true);        
        but3.setClickable(true);
        but4.setClickable(true);            
     }

     }

答案 3 :(得分:0)

我认为您需要传递变量,指定您是否要启用按钮。

第一次,将其传递给:

Intent intent = new Intent (this, NextAct.class);
intent.putExtra ("ENABLE", "No");

如果要启用按钮,请将字符串传递为是:

Intent intent = new Intent (this, NextAct.class);
intent.putExtra ("ENABLE", "YES");

然后在NextAct类中检查此字符串。

    Intent intent = getIntent();
    String enableBtn = intent.getStringExtra("ENABLE");
    if (enableBtn != null && enableBtn.equalsIgnoreCase("YES")) {
        button2.setEnabled(true);
        button3.setEnabled(true);
        button4.setEnabled(true);
    } else {
        button2.setEnabled(false);
        button3.setEnabled(false);
        button4.setEnabled(false);
    }

因此,只有在您需要时才能启用按钮。

希望有所帮助。