android 如何禁用其他按钮,直到第一个按钮被点击

rryofs0p  于 2023-05-21  发布在  Android
关注(0)|答案(3)|浏览(100)

我是个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);
        }
    }
}
moiiocjp

moiiocjp1#

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

j0pj023g

j0pj023g2#

我认为你需要传递一个变量来指定你是否要启用按钮。
第一次,将其传递为:

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

当你想启用按钮时,将String作为Yes传递:

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

因此,您的按钮将仅在您需要时启用。
希望能帮上忙。

nbysray5

nbysray53#

定义一个静态布尔变量wasClicked....如果but1被点击,则使变量为true,否则为false...重写此方法....当用户返回时,它将首先检查,而不是启用或禁用,因为第一次被点击与否。

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

     }

相关问题